如
char
a=2
那么a=00000010
(char
单字节)
对a取反
~a=11111101
因为char是无符号型。
那么对无符号数而言,11111101即是253
注意,取反是对整个数位取反,而不是对有效数位取反。
按位操作是对二进制的某位进行比如要对最低位进行取反,则应当计算a^=1而(1<<(1-1))=1,a^=(1<<(n-1))成立
要对第2位进行取反,则应当计算a^=2而(1<<(2-1))=1<<1=2,a^=(1<<(n-1))成立
依此类推使用a^=(1<<(n-1))均成立
一般来说,数据最低位被标称为第0位,所以这个语句可以写成a^=(1<<n)//n的取值从0开始