003---原码、反码和补码


摘要

文章为学习记录。主要介绍计算机系统中用于表示有符号整数的三种不同编码方式:原码、反码和补码。


一、原码

(1)第一位表示符号,正数为0,负数为1。其余位表示值。如果用8位二进制数来表示:

[+5]原= 0000 0101

[-5]原= 1000 0101

(2)8位二进制数表示的十进制数范围:

[1111 1111 , 0111 1111]

[-127 , 127]。

(3)特点:直观易懂,但在进行减法运算时会出错。

二、反码

(1)正数的反码是其本身,负数的反码是在其原码的基础上,保持符号位不变,其余各位按位取反。

[+5] = [0000 0101]原= [0000 0101]反

[-5] = [1000 0101]原= [1111 1010]反

(2)8位二进制数表示的十进制数范围:

[1111 1111 , 0111 1111]

[-127 , 127]。

(3)特点:减法可以通过加法来实现,但仍然存在两个零(+0和-0)的问题。

三、补码

(1)正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。

[+5] = [0000 0101]原= [0000 0101]反 =[0000 0101]补

[-5] = [1000 0101]原= [1111 1010]反 =[1111 1011]补

(2)8位二进制数表示的十进制数范围:

[-128 , 127]。

[1000 0000]补 = -128
[0000 0000]补 = 0

(3)特点:统一了零的表示(只有一种零),并且使得减法运算可以通过加法器实现。计算机中有符号数用补码表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值