首页 > 其他分享 >原码、反码和补码

原码、反码和补码

时间:2023-04-12 21:55:36浏览次数:47  
标签:0000 补码 1111 反码 原码 1000

1、机器数和真值
一个数在计算机中的二进制表示形式,叫做这个数的机器数,而这个数即为该机器数的真值。
机器数是有符号的,最高位为0表示正数,为1表示负数。

2、原码
最高位为符号位,0表示正数,1表示负数。
其余位为真值的绝对值。
一个字节的空间通过原码可以表达[-127,127],分别为1111 1111和0111 1111,并且0有两种表达方法0000 0000和1000 0000

2、反码
在原码的基础上,正数表达不变,负数的符号位不变,其余位按位取反。
一个字节的空间通过反码可以表达[-127,127],分别为1000 0000和0111 1111,并且0有两种表达方法0000 0000和1111 1111

3、补码
在反码的基础上,正数表达不变,负数的反码+1
一个字节的空间通过补码可以表达[-128, 127],分别为1000 0000和0111 1111,0只有一种表达方法0000 0000

+0 = [0000 0000]原码 = [0000 0000]反码 = [0000 0000]补码
-0 = [1000 0000]原码 = [1111 1111]反码 = [0000 0000]补码
-1 = [1000 0001]原码 = [1111 1110]反码 = [1111 1111]补码
-2 = [1000 0010]原码 = [1111 1101]反码 = [1111 1110]补码
-3 = [1000 0011]原码 = [1111 1100]反码 = [1111 1101]补码
-127 = [1111 1111]原码 = [1000 0000]反码 = [1000 0001]补码
-128 = [...]原码 = [...]反码 = [1000 0000]补码

4、补码的意义
在计算机中,实际应用的一般是补码,比如java的整数类型明确是补码机制。作用是方便正负数直接计算,比如:
-3+5=[1111 1101]补码与[0000 0101]补码,直接按位相加,进位计算可得0000 0010,即为2

标签:0000,补码,1111,反码,原码,1000
From: https://www.cnblogs.com/wd404/p/17311337.html

相关文章

  • C语言中的位运算符和源码反码补码的浅解
    位运算符【与(&);或(|);非(~);异或(^);移位运算符(<<和>>)】对于有符号(正负)的而言:1)二进制的最高位是符号位:0表示正数,1表示负数2)正数的原码,反码,补码都一样3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)4)负数的补码=它的反码+1 5) 0在计算机种分+0与-0,它们的原码,补码,反码......
  • C语言 原码 反码 补码
    1.任何类型的数据在计算机中都是以二进制补码形式存储2.原码:最高位为符号位,用0表示正数,用1表示负数,其他位是相应数的2进制数反码:除符号位外按位取反,0变为1,1变为0补码:反码再加13.正数的原码反码补码都相同65的原码反码补码都是:0000000000000000000000000100000......
  • C#原码,补码,反码以及取反
    在取反的二进制数中最高位是符号位(0代表正数,1代表负数)原码:将数值转化为2进制数,将最高位数转变为相对应的符号位反码:原码为正数的反码就是本身;原码为负数的反码就是符号位不变,其余数 0变1,1变0。补码:正数的补码就是本身;  负数的补码是反码符号位不变,最后一位+1......
  • C#原码,补码,反码以及取反
    在取反的二进制数中最高位是符号位(0代表正数,1代表负数)原码:将数值转化为2进制数,将最高位数转变为相对应的符号位反码:原码为正数的反码就是本身;原码为负数的反码就是符号位不变,其余数 0变1,1变0。补码:正数的补码就是本身;  负数的补码是反码符号位不变,最后一......
  • 原码、反码、补码和移码详解
    计算入门原码:正数是其二进制本身;负数是符号位为1,数值部分取X绝对值的二进制。反码:正数的反码和原码相同;负数是符号位为1,其它位是原码取反。补码:正数的补码和原码,反码相同;负数是符号位为1,其它位是原码取反,未位加1。(或者说负数的补码是其绝对值反码未位加1)移码:将符号位取反......
  • 原码,反码,补码
    0为什么会出现原反补0.1如果用原码计算会出现的问题00000000==+010000000==-0如果+0+1=+1==00000001没有问题如果-0+1=+1!=10000001为-1出现问题如果-1+1=0!=10000010为-2出现问题所以用原码的方式计算负数的加减法,在十进制到二进制的逻辑......
  • 【C版本】静态通讯录与动态通讯录的实现,以及各自所存在的缺陷对比。(含所有原码)
    @​​TOC​静态版本通讯录前期思路与之前的扫雷以及三子棋的实现方式是一样的,创建两个源文件,一个用来测试,一个用来存放函数定义,再创建一个头文件,用来存放函数声明。接下来是......
  • 字符串的反码【吉林大学考研机试题】
    字符串的反码一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符a的距离与它的反码和字符z的距离相同;如......
  • 原码反码补码
    计算机存储的是数据的补码原码数据的二级制形式。例如123的原码:01111011无符号数:原码==反码==补码123原码:01111011123反码:01111011123补码:01111......
  • 原码、反码、补码
    一、位运算符(一)真值表位运算符作用于位,并逐位执行操作。“与”“&”、“或”“|”和“异或”“^"的真值表如下所示:pqp&qp|qp^q000000101111......