数据的表示与运算

机器数

  • 原码:
  • 反码:
  • 补码:计算机中使用的补码来计算和存储数据
  • 移码:
十进制数原码反码补码
30b0110b0110b011
00b0000b000 或 0b1110b000
-30b1110b1000b101
-4\\0b100

原码一位加法

补码一位加法

原码一位乘法

补码一位乘法

原码一位除法

补码一位除法

BCD码

  • Binary-Coded Decimal,二进制编码的十进制数,即使用4位二进制数来表示1位十进制数
  • BCD码可分为有权码和无权码两类。常见的有权BCD码有8421码、2421码、5421码,无权BCD码有余3码、余3循环码、格雷码
  • 余3码是由8421码的每个码组加3(0b0011)形成的,常用于BCD码的运算电路中
  • 余3循环码中每个编码中的1和0没有确切的权值,整个编码直接代表一个数值。主要优点是相邻编码只有一位变化,避免了过渡码产生的“噪声”。余3循环码是在余3码的基础上得来的,余3码的最高位不变,低位依次与高一位进行异或运算得到当前位的值。例:余3码0b0011:第一位1与第二位1进行异或得0,第二位1与第三位0进行异或得1,第三位0与第四位0进行异或得0,最高位为0不变,得余三循环码0b0010
十进制数8421码余3码余3循环码
00b00000b00110b0010
10b00010b01000b0110
20b00100b01010b0111
30b00110b01100b0101
40b01000b01110b0100
50b01010b10000b1100
60b01100b10010b1101
70b01110b10100b1111
80b10000b10110b1110
90b10010b11000b1010

8421码的运算

  • BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样当将 BCD码传送给运算器进行运算时,其结果需要修正
  • 修正的规则是:两个BCD码相加,如果和等于或小于0b1001(即十进制数9),则不需要修正;如果相加之和在0b1010到0b1111(即十进制数10~15)之间,则需加 6 进行修正;如果相加过程中,本位产生了进位,则本位也需加 6 进行修正。(直接越过了0b1111,例如0b1001 + 0b1001 = 0b10010,修正后:0b11000)

浮点数(IEEE 754)

  • 浮点数 = | 数符 | 阶码+偏移值 | 尾数 |
  • 规格化:1.xxxx * 2yyyy (yyyy为阶码,xxxx为尾数,均为二进制表示,数符即数的符号)
总位数数符阶码尾数偏移值
单精度321823127
双精度64111521023

特殊值

e(阶码+偏移值)尾数含义
00±0
2e-10±∞
2e-1非0NaN(非数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值