这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战
本文的思维导图如下:
数据表示
R进制
- 逢R进一
- 二进制,八进制、十进制,十六进制
数据分类
- 有符号的数据(正负)
- 无符号数据
数据转换
R进制转十进制
- 方法:按权展开 展开公式如下:
举个例子,二进制的1101转十进制:
十进制转R进制
- 方法:短除法
以十进制转二进制为例:
二进制、八进制、十六进制互转
整数二进制转八进制
从右往左起每三位二进制转1位八进制,不足三位的在最左边添O补齐;反之八转二,则每一位八进制转换为三位二进制表示。
三位二进制与八进制的值的对应表如下:
整数二进制转十六进制
从右往左起每四位二进制转1位十六进制,不足四位的在最左边添O补齐;反之十六转二,则每一位十六进制转换为四位二进制表示。
四位二进制与十六进制的值的对应表如下:
举个例子:
原码、反码、补码(有符号数据)
原码
- 符号位(0/1)+数值位
反码
- 正值:与原码相同
- 负值:数值位取反
补码
- 正值:与原码相同
- 负值:数值位取反加一
移码
与尾数有关,暂时不做了解
原码,反码,补码的表示和计算结果如下图:
取值范围
补码的0只有一种表示方式,所以它相比于原码和反码多了负边界上的一个值,它们的取值范围如下图:
逻辑运算
逻辑“或”运算
有一边1结果为1,其他为0
逻辑“与”运算
两边都是1结果为1,其他为0
逻辑“非”运算
取反
逻辑“异或”运算
两边不同结果为1,相同结果为0
例题
第一题
计算(1+(-1))得到(八位二进制为例),原码结果为100000010,反码结果为111111111,补码结果为000000000.所以可知原码和反码的正负0的编码不同,所以选C.
第二题
根据取值范围得:,所以选A.
题目内容如下: