Как преобразовать int в два байта в C#?
Как преобразовать int в два байта в C#?
5 ответов
предполагая, что вы просто хотите низкие байты:
byte b0 = (byte)i,
b1 = (byte)(i>>8);
однако, так как " int "является " Int32", что оставляет еще 2 байта не захваченными.
можно использовать метода bitconverter.Метод getbytes чтобы получить байты, содержащие Int32. Однако в результате будет 4 байта, а не 2.
другой способ сделать это, хотя и не так гладко, как другие методы:
Int32 i = 38633;
byte b0 = (byte)(i % 256);
byte b1 = (byte)(i / 256);
Вариант 1:
byte[] buffer = BitConverter.GetBytes(number);
Вариант 2:
byte[] buffer = new byte[2];
buffer[0] = (byte) number;
buffer[1] = (byte)(number >> 8);
Я предпочитаю вариант 1!