【发布时间】:2019-08-05 23:06:11
【问题描述】:
这个操作每次都有效吗?
unsigned long long p64 = 0;
short int x = 7;
p64 = x;
那么,对于这个例子,p64 变量将永远是这个?
0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111
意思是
(p64 == 7)
我问这个问题,因为有时 0111 之后的位都是 1,而不是 0。但是 gcc 编译器没有显示警告,所以这个操作每次都有效吗?有没有办法把 16 位变量转换成 64 位变量?
【问题讨论】:
-
假设小端字节顺序也可能是
0000 0111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000。
标签: c variables types bit-manipulation