Если байт равен 192 или любому другому значению, есть ли способ показать, как он состоит из отдельных битовых значений? - PullRequest
0 голосов
/ 29 июня 2018

Например,

Если байт равен 192, я знаю, что это будет 128 + 64 = 192

Есть ли способ в CSharp перечислить значения, которые составляют байт, чтобы их можно было распечатать или использовать в другом месте?

Спасибо

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Попробуйте следующее:

        static string ToBinary(int input)
        {
            string[] binary = { "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" };

            return string.Join("", input.ToString("x").Select(x => binary[byte.Parse(x.ToString(), System.Globalization.NumberStyles.HexNumber)]));
        }

Или используйте следующее

        static string ToBinary2(int input)
        {
            List<string> results = new List<string>(); ;
            while (input > 1)
            {
                results.Insert(0,(input % 2) == 0 ? "0" : "1");
                input /= 2;
            }
            return string.Join("", results) ;

        }
0 голосов
/ 29 июня 2018

Пример кода:

int V = 192;
int B = 1;
for (int i=0; i<8; i++) {
   if (V&0x01 == 1) {
       // Use B any way you like
   }
   V/=2;
   B*=2;
}
...