整数的编码

整数编码

计算机存储的数据的Bit(位)与Byte(字节)

Bit:位、小b、最小单位

Byte:字节、大B、1Byte=8bit

你家的网络带宽就是用bit计算的

bit

01234567

0-7为:一个Byte

1个bit只能存储2个信息:0、1

1个byte能存储:2^8个信息:[-128,127] or [0,255]

2个byte、4个byte、8个byte。 没有3byte

数据存储位置:寄存器、内存、磁盘等

计算机存储单位:

中文单位中文简称英文单位英文简称进率(Byte=1)
bitb0.125 1/8 B
字节字节ByteB1
千字节千字节KiloByteKB2^10
兆字节MegaByteMB2^20
吉字节GigaByteGB2^30
太字节TeraByteTB2^40
拍字节PetaBytePB2^50
艾字节ExaByteEB2^60
泽字节ZettaByteZB2^70
尧字节YottaByteYB2^80
千亿亿字节千亿亿字节BrontbyteBB2^90

你家的磁盘1KB就是1000B,而计算机科学中的1KB就是1024B

整数的正负表示

有符号数:最高位做符号位这种表示的正整数叫做有符号数(有正负之分);

​ 最高位叫做符号位,1表示负数,0表示正数

​ 如果用1个字节来表示整数,那么:

​ 10110110:负数

​ 01001011:正数

无符号数:无负数,表示0和正整数,最高无需表示正负,参与数值的计算。

一个字节的2整数:

​ 有符号:[-128,127]

​ 无符号:[0,255]

整数的编码:原码

整数是按照二进制存储的,二进制需要进行特定的编码规则存储:原码、反码、补码

原码:在数值前面增加了一位符号位(即最高位为符号位),该位为0表示正数,该位为1表示负数,其余位表示数值的大小。

以一个字节作为整数的存储长度位例子:

1:00000001

-1:10000001
那 么 1 − 1 = 1 + ( − 1 ) = 00000001 + 10000000 = 10000010 = − 2 那么1-1=1+(-1)=00000001+10000000=10000010=-2 11=1+1=00000001+10000000=10000010=2
错误,符号位无法参加计算

整数的编码:反码

反码:正整数的反码就是其本身,而负整数的反码可以通过对其绝对值逐位求反来求得。

以一个字节作为整数的存储长度为列子:

1:00000001

-1:11111110
那 么 1 − 1 = 1 + ( − 1 ) = 00000001 + 11111110 = 11111111 = − 0 那么1-1=1+(-1)=00000001+11111110=11111111=-0 11=1+1=00000001+11111110=11111111=0
反码的问题出现在(+0)和(-0)上,因为在人们的计算概念中零是没有正负之分的。

整数的编码:补码

补码:正数的补码为它本身,负数的补码就是它的绝对值求反加1,0的补码是0

计算机采用补码存储整数

0的补码:0

1的补码:00000001

127的补码:01111111

-128:10000000

补码的好处是:0是唯一的,符号位可以参与计算:

1:00000001

-1:11111111

1-1=00000001+11111111=00000000=0

一个字节的补码扩充到2个字节,4个字节:

正数:0扩充

负数:1扩充

用最高位的符号位去扩充

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑桃鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值