Преобразование строкового массива в двоичную строку - PullRequest
0 голосов
/ 09 июля 2020

У меня есть массив строк с элементами numeri c:

string[] numbers = {"2","3","10","9","4"};

Я хотел бы преобразовать каждую строку в 16-битный двоичный эквивалент и объединить так, чтобы полученная строка выглядела так:

00000000000000100000000000000011000000000000101000000000000010010000000000000100

Нужно ли мне преобразовывать массив строк в массив int и применять функцию / 2 или есть какой-либо другой эффективный способ добиться этого? Кроме того, как мне получить 16-битные результаты?

Ответы [ 3 ]

0 голосов
/ 09 июля 2020
using System;
using System.Text;

namespace Proggram
{
    internal class Program
    {


        internal static int Main(string[] args)
        {
            var sb = new StringBuilder();
            string[] numbers = { "2", "3", "10", "9", "4" };
            foreach (var number in numbers)
            {
                sb.Append(NumbertoStrToBinaryStr(number));
            }

            Console.WriteLine(sb.ToString());
            return 0;
        }


        private static string NumbertoStrToBinaryStr(string numberstr)
        {
            var result = new StringBuilder();
            if (!uint.TryParse(numberstr, out var n)) return result.ToString();

            const int start =  32 - 1;
            for (var mask = 1u << start; mask != 0; mask >>= 1)
            {
                var set = (mask & n) == mask;
                result.Append( set ? '1' : '0');
            }

            return result.ToString();
        }
    }
}
0 голосов
/ 09 июля 2020

вы можете использовать для l oop для доступа к каждому элементу, подобному этому коду ...

string binary_number ="";
string[] numbers = { "2", "3", "10", "9", "4" };
for (int i = 0;i < numbers.Length;i++) {
  binary_number += Convert.ToString(Int16.Parse(numbers[i]), 2).PadLeft(16, '0')));
}
0 голосов
/ 09 июля 2020
string result = string.Join("", numbers.Select(n => Convert.ToString(Int16.Parse(n), 2).PadLeft(16, '0')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...