1、 知识:
而按照计算机中存储的数据都是1和0来说,计算机是没有负号这一说的,而在计算机中,最高位为1的表示为负数,而10111110也不例外
2、最高位表示负数?
一开始我想 300二进制的为10010 1100那么最高位是0难道就是负数吗?
不是的,计算机中,一字节=8位,也就是说,不满足8位的以0填充,而8位换算位十进制最高位255,300>255,所以300占2个字节储存。所以计算机中300的储存形式应该是
0000 0001 0010 1100,最高位为0,所以为正数。
3、如何进制位取反
65写成二进制也就是01000001按位取反的意思是原来的0变成1,原来的1变成0转换后 也就是
10111110
转换为十进制也就是128+32+16+8+4+2=190
而按照计算机中存储的数据都是1和0来说,计算机是没有负号这一说的,而在计算机中,最高位为1的表示为负数,而10111110也不例外
10111110的负数表示算法为:最高位为符号位,不能计算,计算机中负数都是按照补码的表示的,也就是除第一位外,各位取反,最后加1,各位取反后为:1000001,就是65,加1为65,最后算上第一位的负号为也就是-66
4、总结
原码=二进制
反码=原码中1变0,0变1
补码=反码+1
取反并求得补码后要计算机进行最高位符号的判断,且最高位不参与值的计算!
关于计算机中位运算-位取反知识的了解
最新推荐文章于 2023-02-12 20:30:27 发布