C语言中 “变量=~变量” 与 “变量=变量<< 常量” 是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:54:08
最近看回了C语言,奈何手边没有相关书籍,有请各位大侠多多指教。

a=~b

表示将b的二进制按位取反然后赋值给a,假如b=01001,那么a=10110。

a=b<<c

表示将b的二进制左移c位,然后赋值给a。

按位运算符
有 | 按位或 & 按位与 ^ 异位
~ 取反 << 左移 >> 右移
用2进值计算

楼上说的不错,我补充下~:
在C语言中,‘~‘是按位取反运算符。
比如一个变量/常量为2(00000010),那么按位取反则为(11111101).

第二点楼上忘了说一点:
左移后,剩下的位用'0'去补.
比如2(00000010)左移两位:
a<<2;那么表达式值为00001000(相当于对a执行乘4运算),左移1为乘以2...
当然要考虑溢出的问题。

全是位运算!