数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制;
在八位二进制下,-128不能用原码或反码表示,反码只能表示0到127,-0到-127;
用补码表示为:10000000
在八位整数里原码的取值范围为-127到+127,反码也是;在八位二进制中就把-0当作最小数-128用,也就是10000000
-0的原码:10000000
-0的反码:11111111
-128的补码:10000000
扩展资料
小数原码
[X] =
X( 0≤X <1 )
1- X (-1 < X ≤ 0)
例如: X=+0.1011 , [X]原= 0.1011
X=-0.1011 [X]原= 1.1011
整数原码
[X]原 =
X (0≤X <2(n-1))
2(n-1)-X (- 2(n-1) < X ≤ 0)
x为正整数时,[X]原=x;
x为负整数时,[X]原=2的n次方-x;
x为负小数时,[X]原=1-x;
参考资料:百度百科 反码
反码、原码和补码都是计算机中对数字进行二进制定点表示的方法,它们主要在数值存储和计算中发挥作用。
原码(Sign-Magnitude):原码是最简单直观的表示方法。最高位表示符号位(0表示正数,1表示负数),其余位表示数值的绝对值。但计算机中对原码的加减法运算比较复杂,需要进行符号位和数值位的分别处理。
反码(Ones' Complement):反码是通过将原码中的数值位按位取反得到的。负数的反码表示方式保留了原码的符号位,但数值位取反。正数的反码与原码相同。反码的加减法运算可以简化为普通的二进制加法运算,但存在反码溢出和表示正零、负零的问题。
补码(Two's Complement):补码是对反码的进一步改进,通过反码加1得到。负数的补码表示方式在数值位取反的基础上再加1,正数的补码与原码相同。补码的加减法运算可以简化为普通的二进制加法运算,且不会出现反码溢出的问题,同时也可以正确表示正零和负零。补码的一个重要特性是对于任意一个整数n,它的补码与-n的补码相同。
总的来说,这三种编码方式各有特点,原码简单直观,但运算复杂;反码简化了加减法运算,但存在溢出和正负零问题;补码则进一步解决了这些问题,使得计算机能更高效地进行数值运算。在计算机系统中,通常使用补码来表示整数,并进行数值计算。
在计算机系统中,数值,一律采用补码表示和存储。
原码和反码,在计算机中,都是不存在的,也就不必关心了。
----------
所谓的补码,就是一个【代替负数】的正数。
取反加一,只不过是个【障眼法】而已。
----------
其实,不仅是二进制,无论任何进制,都是有“补码”的。
你看十进制,两位数,就是:0 ~ 99。
可以有:27 + 99 = (一百) 26
也可以:27 - 1 = 26
如果你忽略进位,依然保持两位数,那么:
--正数,就能当负数来用;
--加法,也就能完成减法运算。
如果在计算机舍弃进位,会怎样?
--计算机中就没有负数了,全都是正数了。
--减法运算也没有了,减法器,当然也就没有了用武之地。
--计算机只需配置一个加法器,便可横行天下!
----------------------
看到了吗?
--只要你舍弃了进位,正数就能代替负数!
补码,并不是来自取反加一。
--【舍弃进位】,才是补码的来源和存在意义!
----------------------
两位十进制时,舍弃进位,就是减去一百 (10^2)。
那么,加上 99,再减去 100,必然就是“-1 ”!
------
八位二进制数则是:0000 0000 ~ 1111 1111。
换算到十进制,即:0 ~ 255。
出现了进位,就是:2^8 = 256。
------
那么,加上 255 (1111 1111),再减 256,不也是-1 吗?
同理,254 (1111 1110),就能代替-2。
还有,253 (1111 1101),就是-3。
。。。
最后,128 (1000 0000),就代表-128 了。
这些个正数,就是计算机专家“发明”的补码。
----------------------
其实,补码,不需要谁来发明!
当你舍弃了进位,补码自然而然就出来了。
舍弃进位,这不过就是小学的知识点。
但是,计算机专家,却弄不明白这个。
于是,就编造了一套“理论”:
--机器数真值原码反码取反加一符号位不变、符号位也参加运算 ...
谁要是跟老外学算术,立刻、马上,直接就掉沟里去了!
计算机的原码,反码,补码是怎么回事?可以举例说明吗?
原码、反码和补码是计算机中对数字二进制的三种表示方法。1、原码 原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。例如:用8位二进制表示一个数,...
什么是补码原码和反码
计算机中的符号数有三种表示方法,即原码、反码和补码,具体如下:1、原码。就是二进制定点表示法,原码表示法在数值前面增加了一位符号位,正数该位为0,负数该位为1,其余位表示数值的大小,即最高位为符号位,0表示正,1表示负,其余位表示数值的大小。2、反码。是数值存储的一种,多应用于系统...
原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反, 最后+1(即在反码的基础上+1)。正数的原码,反码,补码都...
补码,原码,反码什么的。有什么作用啊!
反码:正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反 举例:int类型的 3 的反码是 00000000 00000000 00000000 00000011 和原码一样没什么可说的 int类型的 -3 的反码是 11111111 11111111 11111111 11111100 除开符号位,所有位,取反 解决了加减运算的问题,但还是有正负零之分,...
反码补码原码是什么意思
原码是最基本的编码方式,适用于简单的数值表示和计算。反码是在原码的基础上发展而来,主要用于解决正负数运算问题。补码是在反码的基础上进一步改进,主要用于解决计算机中数值的范围问题,使得计算机能够表示所有的整数。2、编码方式 原码直接将数值的二进制形式作为原码,正数的原码与其二进制形式相同,负数...
什么是原码、反码、补码?
在补码表示法中,0只有一种表示形式:[+0]补=00000000 [+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)所以有[+0]补=[+0]补=00000000 3、反码的定义 机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是...
原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,如\\x0d\\x0a[+1]原 = 0000 0001\\x0d\\x0a[-1]原 = 1000 0001\\x0d\\x0a正数的反码是其本身\\x0d\\x0a负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.\\x0d\\x0a[+1] = [00000001]原 = [...
反码原码补码什么意思
1、定义 反码、原码和补码是计算机中用来表示有符号整数的不同编码方式。它们是为了解决在计算机中对正负数进行运算和表示时的一些特殊情况而提出的。2、原码 原码是指将一个整数的绝对值转换为二进制,并在最高位上标记符号位。正数的符号位为0,负数的符号位为1。例如,整数+5的原码为00000101,整数...
什么是反码,什么是补码和原码。
反码补码原码怎么转换,来看看方法吧。1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值。2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1。3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1。零分为+0和-0。
计算机中的原码,补码,反码是什么意思?
计算机中的原码、反码和补码是表示有符号整数的不同方式,用于在计算机中进行整数运算和表示负数。以下是它们的定义和示例:原码(Sign-Magnitude):原码的表示方式最简单,将整数分为两部分:符号位和数值位。符号位用于表示正数或负数,0表示正数,1表示负数。数值位表示整数的绝对值。例如,十进制数 -5...