进来了解计算机二进制
人为什么用10进制
人为什么用10进制,哈哈,因为10个手指头。
计算机为什么用2进制
计算机有个cpu,cpu上有个引脚,通电后电流有高有低,所以高的就被即作为1,低的就被即作为0,所以就用二进制了。
二进制与十进制的共通点(基数)
是几进制基数就是几
某进制变十进制
方法就是所在位置x基数x位次幂+()=想要的到的10进制数
某进制变二进制
方法除2取余,最后把得到的余数从最下面写到最上面
2进制一般写到8位,因为8位统称叫一个byte(字节),1位叫bit(比特)
小窍门
二进制的原码,反码,补码?
原码:原码就是10进制变成正常的2进制,例如,7——>00000111,00000111就是原码
反码:反码就是原码的基础上取反,0变成1,1变成0,例如00000111——>11111001
补码:补码就是在反码的基础上+1
十进制负数用二进制表示?
10进制负数转二进制,先求解对应正数,然后符号位(8位的二进制第一位是符号位)定为1,然后取反+1
如果告诉你这个数是负数,那么符号位一定是1。
二进制负数转十进制
二进制负数转十进制,符号位不变,其余位取反+1,得到原码
为什么负数用补码来表示
减法可以当做加法来运算。
逻辑运算符
&
与
|
或
~
取反
^
异或
>>
移位(右移)
<<
移位(左移)
>>>
无符号右移
二进制逻辑运算
&
遇0则0 1&1=1 1&0=0 0&1=0 0&0=0
|
遇1则1 1|1=1 1|0=1 0|1=1 0|0=0
~
1–>0 0–>1
^
不进位加(相同为0,相异为1) 1^1=0 1^0=1 0^1=1 0^0=0
>>
补符号位 右移之后左边补上,符号位是几就补几
<<
补0 左移之后右边补0
>>>
补0 右移之后左边补0
长整数与短整数之间的转换
01101101->0000000001101101
11000110(正数)->0000000011000110
11000110(负数)->1111111111000110
00000000000000000000000001101101->01101101
总结:短整数变成长整数值不发生变化,长整数变成短整数会发生精度丢失,有的时候可能会小些,原因他把前面的位都给砍掉了
本文链接: https://programmerxiaobo.github.io/2020/05/02/%E4%B8%80%E8%B5%B7%E6%9D%A5%E4%BA%86%E8%A7%A3%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E4%BA%8C%E8%BF%9B%E5%88%B6/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!