我尝试以字节为单位调整BMP文件的大小,但我不知道如何读取两个(或n个)字节并将其转换为int。 例如:
13 0B 00 00 = 2835
46 04 00 00 = 1094
B6 51 01 00 = 86454
答案 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了解有关类似情况的详细信息