C语言中左移运算的一个困惑(有分追加)

来源:百度知道 编辑:UC知道 时间:2024/05/02 06:47:23
比如:10001100(假设8bit存储,第一位为标志位) 进行左移两位运算(运算符:<<),按照右边空位补0的要求,变成00110000,但是这样就改变了数字的正负了,我的问题是,在左移时是不是要保持标志位不移动?谢谢

你进行左移运算为的是什么?关系到正负?

在C语言中,按位左移时符号位不会保留,如果需要保持正负,则需要手动设置。

thgfwhb问的好,一般位移运算都是用在不关心正负数(即无符号数)的情况下的。

呼哈呼哈 好深奥