整数的机器表示(1)

预备知识

1K = 2^10 = 1024(kiio)

1M = 1024K = 2^20(Mega)

1G = 1024M = 2^30(Giga)

1T = 1024G = 2 ^40(Tera)

1P = 1024T = 2^50(Peta)

1个二进制位:bit (比特)

8个二进制位:Byte (字节) 1Byte = 8 bit

2个字节: Word(字)

1 Word = 2Byte = 16bit

机器字(machine word)长

一般指计算机进行一次整数运算所能处理的二进制

数据的位数

通常也包括数据地址长度

32位字长

地址的表示空间是4G(一次可以处理32位二进制,即2^32 = 4G)

64位字长

地址的表示空间约是1.8*10^19bytes

机器字在内存中的组织

32机型内存即0到2^31线性展开不能完全访问,

访问内存的最小单元是byte,内存地址的编排也是以byte位单位

32位 第一个地址0000第二个地址0004依次

64位第一个地址0000第二个地址0008依次

字节序

大端:Big, Endian

小端:Little Endian

X086为小段排布

long与指针32位为32位,64位为64位其余都一样

计算机整数的编码方式(w表示字长)

无符号数只表示大小,只为正,例如 w = 8

1 0 0 1 1 1 0 1 即 2^7 + 2 ^4 + 2^3 + 2^2 + 2^0

带符号数用补码表示可正可负,补码在机器层面还是0,1串,和无符号数没有区别

最高位表示符号位,这个符号位不是仅仅表示正还是负,它的符号位是乘与相关的二进制权重。

例如 w = 8

1 0 0 1 1 1 0 1 即1 * -2^7 + 2^4 + 2^3 + 2^2 + 2^0

0 0 0 1 1 1 0 1 即 0 * -2^7 + 2^4 + 2 ^3 + 2^2 + 2^0

符号位带二进制权重

带符号数的补码表示,要知道负数的补码,找到对应的正数然后将整数的二进制码按位取反在+1

即可以得到负数的补码

取值范围

假设w = 8

无符号数

最小值 0000 0000 为0

最大值 1111 1111 为2^w - 1

有符号数

最小值 1000 0000为-2^(w - 1)

最大值 0111 1111为2^(w - 1) -1

有符号数的表示负数比整数多1

无符号数与有符号数转换(在硬件表示的层面来开有符号数与无符号数二进制码一样只是解释不同,比如在c语言层面,如果解释为带符号的就按照补码来算,如果解释为不带符号的就按照源码来算)

两个整数相加溢出会变成负数

两个负数相加溢出会变成正数

15213/2 精确值因该是7606.5

右移一位为7606与C语言除法一致

逻辑右移高位补零

算术右移如果为正数高位补0,如果为负数高位补1

如果带符号数大于0与无符号数一直

如果小于0会有舍入错误

如-15213/2精确值为-7606.5

而右移后为-7607与C语言除法-7606不一致

需要做一个矫正2^k -1, (x + 2^k -1)/2K

如果一个数第K位后全是0,包括第K位,那么加上2^k -1 相当于加全1,右移k位后值不变。

如果一个数第K位后含有1,那么就有可能发生进位集第K+1位加1,那么右移K位后,就相当于给右移后+1,则除法正确。

比如-15213右移后为-7607然后+1,为-7606则正确。

从小到大排布,且符合无符号数的比较

越靠近数轴越密

如果不是.5则采用4舍5入,如果是.5则采用向最接近值的舍入

  1. 011 < 100 小于.5所以舍

  1. 110 > 100 大于.5所以进

  1. 100 = 100 等于.5最低有效位不为0所以进

  1. 100 = 100等于.5最低有效位为0所以舍。

实例将8位无符号数转化为8位浮点数

8位数据太小,会有误差将整数转换为小数在转换会整数,存在误差

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值