C语言中 temp <<= 8 表达式是啥意思

2024-11-13 14:17:45
推荐回答(3个)
回答(1):

计算机中是或氏以byte为基本单衫毕散位的。每个byte由8个bit组成,每个bit由值0或1(2进制),一个字(16)位的是2个byte,32位的字为4个byte.
你看的例子中u32表示 unsigined int32;(32位的无符号整型数字)
比如temp=8; ,化成bit就为成
0000 0000 0000 0000 0000 0000 0000 1000
<< x 含义是,将上面bit表示的数据,每一位都向左移动x位,低位补0(实际上相当于乘以2的x次方)
比如上例,temp <<= 1;结果数脊就是:
0000 0000 0000 0000 0000 0000 0001 0000
同样temp << 8,就是每一位向左移动了8位:
0000 0000 0000 0000 0000 1000 0000 0000
类似的运算符还有>>,向右移动的意思,(>>1就是除以2)

回答(2):

是个 复合符号 ,相当于先移位置,再赋值,跟temp<<8结果是一样的。

回答(3):

左移8位吧,temp1=temp1<<8