二进制存储数据

1.进位计数制

 用二进制数表示小数:

十进制数转r进制数:

除以r,不断取余数。转八进制(十六进制)可以先转为二进制,三位(四位)一合并。

如果是小数部分,需要将小数部分不断乘以r,取整数部分。

例:0.3

0.3*2   0.6  0

0.6*2  1.2   1

0.2*2   0.4   0

0.4*2   0.8   0

0.8*2   1.6   1

发现1001不断循环,表明有些小数无法用进制数精确表达。

2.BCD码

BCD码:用四位二进制表示一位十进制

8421码进行加法运算时,1010-1111不在合法范围内,运算结果如果超出10,就需要加6来进行修正

3.字符与字符串

4.校验码

1.确定多少位校验位

2.确定校验位的位置

3.求校验码的值

将信息位的位置按二进制表示,二进制最后一位为1的信息位归为检验位P1组;二进制倒数第二位为1的信息位归为校验位P2组,以此类推。

一个组内的信息位进行异或运算,求出来的值即为校验码

4.纠错

将一个组内的校验码与信息位进行偶校验,即求异或运算,偶校验结果为0即结果正确。

如果结果中有1出现,偶校验结果由低位到高位排列组成的二进制表示错误信息位的位置。

5.定点数的表示 

原码:

补码:

负数原码转补码,先转为反码:符号位不变,尾数取反,再转补码:尾数加一;将负数补码变为原码,需要尾数取反加1;正数的话,原码就等于补码也等于反码。

移码:补码的基础上将符号位取反。注意:移码只能用于表示整数。移码便于硬件比较真值的大小

技巧:由[x]补快速求[-x]补的方法符号位、数值位全部取反,末位+1

6.移位运算

只有右移才需要区分逻辑还是算数,如果是左移两种模式都只需要在低位补0

逻辑右移和算数右移的区别:

如果二进制表示的是图形,右移时高位补0,称为逻辑右移

算数移位:如果二进制数表示的是带符号位的数值,移位后要在高位补充符号位代表的数值(1或0),则称为算数右移。高位补0,低位舍弃。若舍弃的位=0,则相当于÷2;若舍弃的位不为0,则会丢失精度

反码的算数移位――正数同原码。负数的反码数值位与原码相反,因此负数反码的移位运算规则如下,

右移:高位补1,低位舍弃。

左移:低位补1,高位舍弃。

补码的算数移位——正数同原码。负数的补码移位规则:右移(同反码):高位补1,低位舍弃。左移(同原码):低位补0,高位舍弃。

7.加减运算和溢出判断

只有“正数+正数”才会上溢——正+正=负

只有“负数+负数”才会下溢——负+负=正

方法一:采用一位符号位

设A的符号为As,B的符号为B,运算结果的符号为Ss,则溢出逻辑表达式为

V=ARBSs + AsBsSs若V=0,表示无溢出;若V=1,表示有溢出。

双符号位存储时并不会多占内存,因为只会存储一位,再复制符号位,运算时两位符号位同时参与

8.乘法运算

原码乘法运算:

补码的乘法运算:

9.除法运算

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值