如何将两个字节转换为整数

时间:2014-04-16 14:57:02

标签: integer byte bit

我尝试以字节为单位调整BMP文件的大小,但我不知道如何读取两个(或n个)字节并将其转换为int。 例如:

13 0B 00 00 = 2835 
46 04 00 00 = 1094
B6 51 01 00 = 86454

2 个答案:

答案 0 :(得分:2)

您只需将各个字节乘以256(相当于左移8位)。唯一棘手的部分是你需要知道将它们相乘的顺序。这就是所谓的 endianness Read more about endianness here.

intVal = ((B0 * 256 + B1) * 256 + B2) * 256 + B3

在您的示例中,字节以 little endian 形式存储(首先是 LSB ),因此转换第一组第一组字节的方式如下:

(((0x00 * 256) + 0x00) * 256 + 0x0B) * 256 + 0x13

答案 1 :(得分:1)

如果您正在使用的语言支持转换,请尝试intVal = buffer1 | buffer2 << 8

对于您的情况,这将是: 19 | 22 << 8 = 2835

更为简单,简明扼要。

另请参阅Convert 2 bytes into an integer了解有关类似情况的详细信息