软考程序员第二篇复习by myself

底层 机器数的种类

原码

原码是带符号的机器数。
例如:[+5]=0101
[-5]=1101
最前一位是符号位
[+0.125]=0※0001
[-0.125]=1※0001

反码

反码的正数与原码相同,无需作出修改。
负数则在符号位后为尾数集体取反。
原码:[-5]=1101
反码:[-5]=1010
即符号位不变。
[+0.125]=0※1110
[-0.125]=1※1110

补码

补码的正数与原码、反码相同,无需作出修改。
负数则在反码负数的基础上末位+1.
反码:[-5]=1010
补码:[-5]=1011
补码[-0.125]=1※1111
反码[-0.5]=1※0111111
补码[-0.5]=1※1000000

移码

移码是在原有的量上更变符号值,即将补码的符号取反即可。
原码:[+4]=0100 [-4]=1100
反码:[+4]=0100 [-4]=1011
补码:[+4]=0100 [-4]=1100
移码:[+4]=1100 [-4]=0100

定点数

definition:定点数是表示数据时小数点的位置固定不变。

定点小数

纯小数,小数点在最高有效数值之前。

定点整数

纯整数,小数点在最低有效数值之后。

各码制带符号的范围

码制定点整数定点小数
原码-(2n-1-1) ~ +(2n-1-1)-(1-2-(n-1)) ~+(1-2-(n-1))
反码-(2n-1-1) ~ +(2n-1-1)-(1-2-(n-1)) ~+(1-2-(n-1))
补码-2n-1~+(2n-1-1)-1 ~+(1-2-(n-1))
移码-2n-1+(2n-1-1)-1 ~+(1-2-(n-1))

浮点数

二进制转换为浮点数
10110110 = 0.10110110 * 28
10110110称之为尾数
2的8次方,8称之为阶码

在机器数之中,包括编程语言均会存在浮点数数据类型
一般分为单精度与双精度

这里需要提及的标准称之为 IEEE754工业标准
该标准是由IEEE制造的有关浮点数的工业标准一般表示为

s p m

s是指在符号,即正数为0,负数为1
p是指阶码,一般以 移码 表示。
m是指尾数,一般以原码表示。

以单精度为例,单精度浮点数的字长为32,尾数长度为23,偏移量是+127.

例1:以浮点数176.0625转化作IEEE754标准单精度浮点数形式

1:把176.0625分成整数与小数部分转化为二进制
176 = 10110000
0.0625 = 0.0001
176.0625 = 10110000.0001

2:转化为浮点数形式
10110000.0001=1.01100000001 * 27
确定阶码为 7
然后去掉最高位的1
即尾数(满足23位)
m=01100000001000000000000
p为阶码+偏移值
既7+127 =134
134转换为二进制为 10000110
p = 10000110
s= 0 由于176.0625是正数
最终转换的形式需要按照s p m 排列即

176.0625的IEEE754单精度浮点数形式为
0 10000110 01100000001000000000000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值