简体   繁体   中英

How do I convert an int to two bytes in C#?

如何在C#中将int转换为两个字节?

Assuming you just want the low bytes:

byte b0 = (byte)i,
     b1 = (byte)(i>>8);

However, since 'int' is 'Int32' that leaves 2 more bytes uncaptured.

You can use BitConverter.GetBytes to get the bytes comprising an Int32. There will be 4 bytes in the result, however, not 2.

Another way to do it, although not as slick as other methods:

Int32 i = 38633;
byte b0 = (byte)(i % 256);
byte b1 = (byte)(i / 256);

Is it an int16?

Int16 i = 7;
byte[] ba = BitConverter.GetBytes(i);

This will only have two bytes in it.

Option 1:

byte[] buffer = BitConverter.GetBytes(number);

Option 2:

byte[] buffer = new byte[2];

buffer[0] = (byte) number;
buffer[1] = (byte)(number >> 8);

I prefer option 1!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM