我尝试将 unsigned long int 转换为 char 但我遇到了一些错误
int main(void)
{
unsigned char pdest[4];
unsigned long l=0xFFFFFFFF;
pdest[0] = l & 0xFF;
pdest[1] = (l >> 8) & 0xFF;
pdest[2] = (l >> 16) & 0xFF;
pdest[3] = (l >> 24) & 0xFF;
unsigned long int l1=0;
l1 |= (pdest[0]);
l1 |= (pdest[1] << 8);
l1 |= (pdest[2] << 16);
l1 |= (pdest[3] << 24);
printf ("%lu",l1);
}
输出为
18446744073709551615
不是 4294967295?
如何正确执行?
最佳答案
阅读此内容: https://en.wikipedia.org/wiki/C_data_types
...Long unsigned integer type. Capable of containing at least the [0, 4,294,967,295] range;
关于在 C 中将 Char 数组转换为 Long 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304349/