【发布时间】:2015-04-23 10:48:26
【问题描述】:
我正在读取 2 个字节,它们一起构建了一个从 0 到 65536 的 unsigned short 值。我想将它们组合成一个值,所以这里我做了什么:
int32_t temp;
uint8_t buffer[2];
.............
temp = (buffer[1] << 8) /* [MSByte]*/| (buffer[0]/* [LSByte]*/);
printf (" %d" ,temp) ;
我仍然在 32767 处出现溢出。知道为什么吗?
【问题讨论】:
-
Buffer是如何声明的? -
不清楚你在问什么,也不清楚你想做什么。
-
@iharob 我已经添加了缓冲区的声明
标签: c integer bit-manipulation