首页 > 其他分享 >二进制及原码反码补码

二进制及原码反码补码

时间:2024-08-06 12:57:57浏览次数:9  
标签:10 反码 进制 16 补码 原码

目录

一.进制及转换

1.二进制和进制转换

1.1 2进制转10进制

1.2 10进制转2进制

1.3 2进制转换8进制

1.4 2进制转换成16进制

二、原码、反码、补码


一.进制及转换

2进制、8进制、10进制、16进制是数值的不同表现形式。

比如:数值13的各种进制表现形式:

13的2进制:1101        

13的8进制:15

13的10进制:13

13的16进制:D

1.二进制和进制转换

平常我们最常用10进制:

10进制中满10进1

10进制的数字是由0-9的数字组成

2进制规则相同:

2进制中满2进1

2进制的数字每一位是由0-1的数字组成

因为2进制只用0和1两个数字,有很多优点,比如传输和处理时不易出错、运算规则简单,故在计算机中,数据以二进制形式储存,在此我们重点讨论2进制。

1.1 2进制转10进制

如10进制数字123表示一百二十三:

10进制的位

          1(百位)

     2(十位)        3(个位)
     权重          10^2       10^1      10^0
   权重值          100         10          1
     求值                          1*100+2*10+3*1=123

2进制的1101:

2进制的位

      1

     1        0      1
    权重    10^3    10^2     10^1      10^0
  权重值      8      4       2       1
    求值                      1*8+1*4 +0*2+1*1=      13

1.2 10进制转2进制

  2125余数为1
 2 62余数为0
   2 31余数为1
   2 15余数为1
   2  7余数为1
    2  3余数为1
     2  1余数为1
                                                                                         0

从下往上依次所得的余数就是10进制的125转换出的2进制:1111101

1.3 2进制转换8进制

8进制规则:

8进制中满8进1

8进制的数字是由0-7的数字组成

  0-7的数字,各自写成2进制,最多3个2进制就足够了,比如7的二进制是111,所以在2进制转化成8进制时,从右边低位往左,每3个2进制位换算一个8进制,剩余不够3个2进制位的直接换算。

如:2进制01101011,换成8进制:0153,0开头的数字会被当做8进制。

     2进制     0  1   1   0   1    0   1 1
     8进制           1               5               3

1.4 2进制转换成16进制

16进制规则:

16进制每一位:0 1 2 3 4 5 6 7 8 9 A B C D E F 

                         10 11 12 13 14 15由ABCDEF替换

0-9,a-f的数字,各自写成2进制,最多4个2进制就足够了,比如f表示15,它的的二进制是1111,所以在2进制转化成16进制时,从右边低位往左,每4个2进制位换算一个16进制,剩余不够4个2进制位的直接换算。

如:2进制的01101011,换成16进制:0x6b,16进制表示的时候前面加个0x

     2进制   0    1    1     0    1   0   1 1
    16进制                         6                    b

二、原码、反码、补码

整数的2进制表示方法有三种:原码、反码、补码。

有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位被当作符号位,剩余的都是数值位。

符号位:0表示”正“,1表示”负“。

如:+1101的原码:01101      -1101的原码:11101

正整数的原、反、补码都相同。

负整数的三种表示方法各不相同。

原码:直接将数值按照正负数形式转换成二进制得到的就是原码。

反码:原码的符号位不变,其他依次按位取反。

补码:反码+1得到补码。

(补码求原码可以将补码-1得到反码,再取反求原码;也可以取反,+1得到原码。)

真值        原码        反码         补码
     -12810000000
     -127111111111000000010000001
       ...             ...             ...               ...
       -1100000011111111011111111
       -0100000001111111100000000
       +0000000000000000000000000
       +1000000010000000100000001
       ...            ...            ...               ...
      +127011111110111111101111111

在计算机系统中, 数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理(CPU只有加法器)。

标签:10,反码,进制,16,补码,原码
From: https://blog.csdn.net/2302_77464435/article/details/140613144

相关文章

  • 【每日一题 | 组成原理】补码溢出判断
    题目题型总结带符号的定点数表示方式有4种,分别是原码、反码、补码和移码,他们都由两部分组成,分别是符号位和数值位,这四种编码方式非常重要,要熟练掌握他们之间的转换和与真值间的转换。这里我们重点看一下补码:也就是说,补码是比其他编码可以多表示一位数据的,也就是可以取......
  • 二进制|原码、反码、补码
    1.原码原码是计算机中表示整数的一种方法,其中最高位为符号位,其余位为数值位。正数符号位为0,负数符号位为1。例如,+5的原码为00000101,-5的原码为10000101。2.反码反码是将原码中的数值位按位取反而得到的。正数的反码与原码相同,负数的反码是符号位保持不变,数值位按位取反。例如......
  • 原码反码补码
    原码、反码和补码是计算机中用来表示带符号整数的三种编码方式,它们在计算机内部的运算和表示过程中发挥重要作用。以下是这三种编码方式的详细讲解:一、原码定义:原码是最直接的表示方法,其中最高位表示符号位(0表示正数,1表示负数),其余位表示数值的绝对值。特点:原码的优点是表......
  • 定点数补码乘法运算
    补码乘法的理论推导根据上述理论推导,我们可以得知,\([x]_{补}*[y]_{补}\neq[x*y]_{补}\),在计算补码的乘法时,我们应该减去乘数的符号位乘以其对应的位权乘以被乘数原码的符号位是不参与运算的,而补码的符号位是参与运算的,并且在最后是减去乘数的符号位乘以其对应的位权乘以被......
  • 定点数原码乘法运算
    手算二进制乘法我们可以分别计算被乘数和乘数每一位的乘积,乘以对应的位权然后把它们加起来,乘以对应位权这个操作我们可以通过逻辑移位来实现而对于符号位的处理,我们可以首先不考虑符号位,取两个数字的绝对值进行相乘,在运算完成之后,对运算结果的符号位进行修改原码二进制乘......
  • 从零开始学Java(超详细韩顺平老师笔记梳理)03——各类运算符、标识符关键字、进制转换、
    文章目录前言一、运算符(算术、关系、逻辑、赋值、三元)1.算术运算符2.关系运算符(比较运算符)3.逻辑运算符4.赋值运算符5.三元运算符TernaryOperator二、运算符优先级三、标识符规范与关键字1.标识符命名规则和规范2.关键字3.保留字四、键盘输入五、进制介绍转换,......
  • 反码求和 校验和算法
    参考链接问题引出最近在学习ICMP时,看到里面有关于校验和的算法一知半解。校验和是16bit字的二进制反码和,也觉得很奇怪,为什么会用反码和,而不是直接求和呢?或者是补码和呢?如果计算机中存储数据使用原码,则会导致两个问题,1.有负数参与的运算结果不正确。2.0的表示方法有两种。......
  • 【信息学奥赛】CSP-J/S初赛05 计算机原码、补码和反码
    本专栏......
  • 原码、反码、补码的理解
    概念机器数、真值机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1。比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011。如果是-3,就是10000011。那么,这里的00000011和1......
  • 在算力充足的未来,计算机中的负数还有必要使用补码表示吗
    补码(Two'sComplement)表示法在计算机科学中广泛使用,主要是因为它的几个优点:在补码表示法中,加法、减法和乘法都可以使用相同的硬件电路实现,这大大简化了硬件设计。使用补码表示法,当两个正数相加导致结果超出范围时,会得到一个负数(表示上溢),这可以被程序捕获并处理。在补码表示......