位运算和操作符属性
位运算和操作符属性
除了课件中提到的那几种应用,其他时候一般先不考虑用这个原反补码
printf("%d\n,017")打印出来则是15
printf("%d\n,0017")打印出来也是15
printf("%d\n,0x017")打印出来是23
eg:2进制转换为32进制则''每5个2进制位转化成一个32进制位...''
int类型的原码,反码,补码都是32位(因为占4个比特位)
整数在进行位运算时,才用原反补码去理解,平时则按常规思维去看待
移位操作符移动的是储存在内存中的补码的二进制序列
正数或者无符号数左移一位有乘二的效果
正数右移一位有除二的效果
(总结出来的)
有符号整数的补码变成原码先看符号位来判断用哪种方法变
如果if碰到其他进制的话,其他进制中有一个1或者即以上都为真(其实和十进制一样)
取反这个词要看情况来看包不包含符号位
使用按位与的操作符时很容易造成优先级问题出现
(eg:位运算操作符的优先级低于关系操作符)
整数"就是"整型
char是一种特殊的整型,小数不算整型
关于优先级:(优先级可以不用记,用括号来绑定就行了)
1.相邻操作符才比较优先级
2.优先级高的先算
在默认情况下,式子也是先乘除后加减来算