数据的表示

数据的表示(原码反码移码补码)

数的表示要了解它的计算和表示方法,以及数值取值范围

  1. 原码:把一个数转成二进制的形式,一般确定用一个字节也就是8bit来表示二进制,如果转成的二进制不足以8位,那在高位补充0即可。最高的为符号位(带符号的情况下)对于正数而言符号位为0,负数符号位为1。
    原码这种操作方式是***不能***在计算机里直接做加减乘除运算的,例如:
    1的原码:00000001
    -1的原码:10000001
    若是原码相加,00000001+10000001=10000010
    得到的结果却是-2的原码
    因此提出了其他的编码方式——反码

  2. 反码:也是区分正负。
    如果是正数,反码与原码相同。包括后面讲到的补码,正数的补码也是与原码相同。
    如果是负数,先把符号位不动,把后面所有位置在原码基础上取反。
    如果用反码进行运算,比如1和-1相加。
    1的反码:00000001
    -1的反码:11111110
    若是反码相加,00000001+11111110=11111111
    由反码推导出这个数的原码就是10000000,即-0
    其实这个结果跟我们预期的结果已经接近了,只是前面的符号位不是很习惯。由此我们来看补码

  3. 补码:如果是正数,正数的补码和原码是一样的。
    如果是负数,负数的补码是在反码的基础上+1
    若是补码相加,1的补码:00000001,-1的补码:11111111
    00000001+11111111=00000000,即+0

  4. 移码:移码一般在特定场合使用,比如在浮点运算中用作阶码。那么移码是怎么产生的呢?移码是在补码的基础上把首位做取反,其余部分与补码一致

  5. 经常的一个考点:数值的表示范围。
    n=8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值