计算机中原码的问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 06:02:19
百度知道里有一个例子说 我们用8位表示一个数,则+11的原码为00001011。-11的 原码就是10001011
缺点:原码不能直接参加运算,可能会在运算中出错,例如在十进制中1+(-1)=0
而在二进制中00000001+10000001=100000010,换算成十进制为2。显然出错了。。。。。。

问:
二进制00000001+10000001=100000010 为什么说换算成十进制为2?是如何换算成2的?什么东西出错?出错在哪里?

你是学什么,我学的是汇编!也才学完原码这一小点,加我QQ:940295748
现在给你讲讲,你看着:
1+(-1)=0就是1-1=0一个意思
十进制中1转换成二进制就是00000001
十进制中(-1)转换成二进制就是10000001(十进制转换成二进制,我还没学,嘻嘻!)
看到区别了吗,就是开头的那个数
就是开头的那个数是0,这个8位二进制数就是正数。
就是开头的那个数是1,这个8位二进制数就是负数。
现在我讲符号位,在二进制数中,为了便于说明和使用,所以各‘位'(这个位是单位名词,英文是bit),自右向左!!!!从0开始编到7!
拿1的8位二进制数,举个例子:
编号:7 6 5 4 3 2 1 0
1的8位二进制数:0 0 0 0 0 0 0 1
看懂了吗?想必你也不是白痴,知道7 6 5 4 3 2 1 0中那个最大,当然是7,所以第一位(准确说是第七位,因为它是从右向左!很重要!)就是最高位!最高位也叫做符号位!
好,下面就是算法!(这里只提到加法,其他不说了,打字很累!)
你要知道,二进制是逢二进一,也就是:
0+0=0 1+0=1 0+1=1 1+1=10 看到没有啊,1+1=10!二进制当中没有2!
哦!还有你的00000001+10000001=100000010是错的,我已经把百度百科改了!可以搜“原码”查看!
正确的是00000001+10000001=10000010 你的多了一个0!
现在我就给你讲 如何十进制换算成二进制!
假设asdfghjk是一个8位二进制数,在这我把它给你排出来!
编号:7 6 5 4 3 2 1 0
假设的8位二进制数:a s d f g h j k
先提示:(^这个小符号表示次方,比如:3^2,也就是3的2次方!也就是9,*这个小符号表示乘号!记住了吗?)
现在是重点,方法:k*2^0+j*2^1+h*2^2+g*2^3……a*2^7的和就是a s d f g h j k对应的十进制!
我怕你不懂,