二进制10000010减01111111
二进制逢二进一,相减不够了就向高位借:十进制就是借以当十,当然二进制就是借一当二。
比如:10-01=01(高位借一当做2,2-1=1). 对于你这题: 10000010-01111111=10000010+10000001=(1)00000011=00000011 (注释:假设机器位长是8位)
数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚."(摘自>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题.
数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为
(-127~-0 +0~127)共256个.
? 有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits
( 1 )?10-? ( 1 )10?=? ( 1 )10?+ ( -1 )10?= ?( 0 )10
(00000001)原?+ (10000001)原?= (10000010)原?= ( -2 )?显然不正确.
? 因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算:
?( 1 )10?-? ( 1 )?10=? ( 1 )?10+ ( -1 )?10= ?( 0 )10
?(00000001)?反+ (11111110)反?=? (11111111)反?=? ( -0 ) ?有问题.
( 1 )10?-? ( 2)10?=? ( 1 )10?+ ( -2 )10?= ?( -1 )10
(00000001)?反+ (11111101)反?=? (11111110)反?=? ( -1 )?正确
问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大).
于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:
(-128~0~127)共256个.
注意:(-128)没有相对应的原码和反码, (-128) = (10000000) ?补码的加减运算如下:
( 1 )?10-? ( 1 )?10=? ( 1 )10?+ ( -1 )10?= ?( 0 )10
(00000001)补?+ (11111111)补?=? (00000000)补?= ( 0 )?正确
( 1 )?10-? ( 2)?10=? ( 1 )10?+ ( -2 )10?= ?( -1 )10
(00000001)?补+ (11111110)?补=? (11111111)补?= ( -1 ) ?正确
?? 所以补码的设计目的是:
???? ⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.
⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计
? 所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。看了上面这些大家应该对原码、反码、补码有了新的认识了吧!
对于你这题:
10000010-01111111=10000010+10000001=(1)00000011=00000011
(注释:假设机器位长是8位)
注意了 ,我这里计算用到了减去一个数等于加上这个数的取反再加一的规则。
拿十进制举例:大家都知道10-2=8,下面我们来进行取反算法。
010-002=010+998=1008=008(1008最前面的1溢出了,就舍去,所以就是008)
这里-002就等于002取反加一(002取反=997,再加1=998)
就是三位数计算,10减去2=10加998=1008 因为是三位数1008=008=8
所以10-2=8。
之所以计算机里用二进制,是二进制的取反很简单,计算机里没有减法操作,都是把减法转换成加法进行运算的。
同样的,01111111取反加一等于10000001,所以-01111111就等于+10000001
补充一下:
你可能会问什么是取反,取反就是0变为1,1变为0.
比如001取反就是110,1100取反就是0011,1000取反就是0111
10000010换成十进制为130,01111111换成十进制为351,用十进制去减然后再转换成二进制
列出竖式,自己就可以算:
1 0 0 0 0 0 1 0
- 0 1 1 1 1 1 1 1
-----------------------------------
0 0 0 0 0 0 1 1
已知字母"A"的二进制ASCII编码为"1000001",则字母"B"的十进制ASCII编码...
二进制为1000010 10进制为66
8421BCD码1000001转换为16进制数是?
8421BCD码与10进制数的关系是:0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:0111 8:1000 9:1001 8421BCD的1000001,从个位开始向前,4位一组分组:0100,0001,前面不足4位补0,根据上面的对应关系,是10进制的41。41化成16进制:41=32+9=(29)16 ...
作业,请将1,10,100,1000,10000,100000转换为二进制,八进制,十六进制数...
1的二进制,八进制,十六进制分别是1,1,1。10的二进制,八进制,十六进制分别是1010,12,A100的二进制,八进制,十六进制分别是1100100,144,641000的二进制,八进制,十六进制分别是1111101000,1750,3E810000的二进制,八进制,十六进制分别是10011100010000,23420,2710100000的二进制,八进制,十六...
与十进制数65等值的二进制数是?
65(十进制) = 1000001(二进制)十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位...
用二进制从一数到一百 怎么数?
64~71:1000000,1000001,1000010,1000011,1000100,1000101,1000110,1000111,72~79:1001000,1001001,1001010,1001011,1001100,1001101,1001110,1001111,80~87:1010000,1010001,1010010,1010011,1010100,1010101,1010110,1010111,88~95:1011000,1011001,1011010,1011011,1011100,1011101,1011110,1011111,96~100:...
为什么字母A的二进制ASCII编码是1000001?要怎么算?
十进制整数转二进制数:“除以2取余,逆序排列”(除二取余法)。ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:65~90...
八进制转换成二进制的问题
八进制一位变二进制三位,0变成000,1变成001,2变成010,3变成011,...,7变成111,所以是001000001,化简1000001
为啥二进制数1111110的补码不是负2
1111110的补码是1000001。也就是负1.根据求补码除符号位“按位取反,末尾加一”的原则,1111110的补码为1000001,换算为十进制数就是 -1。你应该是换算成十进制数时错了。在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来...
已知大写字母“A”的ASCII码为二进制1000001,则字母“F”的ASCII码为...
A+5=F 所以就把A的ACSII码加5就可以了,答案:1000110。
把1000001和10101.01101这两个二进制转换为八进制和十六进制要有过程...
把1000001和10101.01101这两个二进制转换为八进制和十六进制要有过程? 25 把1000001和10101.01101这两个二进制转换为八进制和十六进制要有过程... 把1000001和10101.01101这两个二进制转换为八进制和十六进制要有过程 展开 我来答 1个回答 #话题# 居家防疫自救手册 ...
武罚升白: 二进制逢二进一,相减不够了就向高位借:十进制就是借以当十,当然二进制就是借一当二. 比如:10-01=01(高位借一当做2,2-1=1). 对于你这题: 10000010-01111111=10000010+10000001=(1)00000011=00000011 (注释:假设机器位长是8位)
德化县18299212636: 负2的,反码,补码及过程 - ?
武罚升白: -2=-0000010 所以:-2的原码=10000010(8位2进制数)-2的反码=11111101(符号位不变,数值位逐位取反)-2的补码=11111110(反码最低位加1)
德化县18299212636: 110001÷101等于多少?二进制 - ?
武罚升白: (10000010)二进制÷(101)二进制等于11010
德化县18299212636: 请教 用8位补码表示整数 - 126的机器码,算术后移一位的结果是什么? - ?
武罚升白: 126的二进制是01111110,所以-126的补码是126的二进制码“取反加1”,为10000010.算术右移一位,因为左边的符号位为1,所以左边补上1,得到11000001,符号位为1,是某负数的补码,将其“减1取反”,得到其绝对值的二进制码为00111111,即63,所以该负数为-63.
德化县18299212636: 10000减101制数进行运算等于几 - ?
武罚升白: 10000 00101 -------- 01111 00100 -------- 01011 最后的结果是1011
德化县18299212636: 整数 - 126的补码怎么算? - ?
武罚升白:负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1. 例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码 0000111按位取反为1111000;再加1,所以-7的补码是11111001. 所以呢,-126转换成二进制为1 1111110(为了区别,特意空了一个空格,共七个1哦),-126的绝对值为1111110,取反为0000001,再加1为1 0000010.最后的结果就是10000010.
德化县18299212636: 设有 char a , b ; 若要通过 a&b 运算屏蔽掉a中的其它位 - ?
武罚升白: &是按位运算的一种.相当于按位乘法. 举个例子:a = 0 1 0 0 1 0 0 1, 那么 b = 0 1 0 0 1 0 0 0 ,则a&b的值就是对应位相乘a&b = 0 1 0 0 1 0 0 0总之,想保留a的某乏胆催感诎啡挫拾旦浆些位不变,就要使之计算的b的对应位是1(因为1乘以任何数都是原数本身).其他的位为0即可.
德化县18299212636: (10000010)2进制除以(101)2进制等于多少? - ?
武罚升白: 你好!(10000010)2进制等于130,(101)2进制等于5则结果为26仅代表个人观点,不喜勿喷,谢谢.
德化县18299212636: (10000010)二进制÷(101)二进制等于多少 - ?
武罚升白: 10000010÷101=11001.1001100110011.....是个循环小数.
德化县18299212636: 定点数中原码的减法 - ?
武罚升白: 原码不能直接参加运算,可能会出错.例如数学上,1+(-1)=0, 而在二进制中00000001+10000001=10000010,换算成十进制为130.显然出错了. 所以原码的符号位不能直接参与运算. 计算机中数值一律用补码来表示.