8421码把十进制转换2进制与十进制除2转换不一样对吗?
答案:2 悬赏:70 手机版
解决时间 2021-03-13 01:23
- 提问者网友:蔚蓝的太阳
- 2021-03-12 18:04
8421码把十进制转换2进制与十进制除2转换不一样对吗?
最佳答案
- 五星知识达人网友:等灯
- 2021-03-12 19:36
BCD码又称8421码,看上去是种二进制形式,但不是真正二进制。
BCD码分别两种,一种是是压缩BCD,一种是非压缩BCD,而8421码在某些书上又称之为压缩BCD码,也就是说8421是BCD码中的一种。毕竟这个是大陆的一种叫法,是从权值上叫的,如果你真向老外请教8421码,老外肯定不会知道,之所以是大陆上的一种不规范叫法,所以在定义与理解上也是有不同的。
所谓的二进制码,指的利用除余法求得的二进制,比如1111表示的是15,就是十进制除2的转换方式。
但8421则是早用四个bit表示一个十进制数字。也就是说将每个十进制数据写成一个4bit的二进制。也就是说四位本来最大应该是15,但在bcd中最大只可能是9!也就是说我们只用到了最高位为8位权,同时用到了4,2,1的位权,所以起了名字叫8421码。
如:
15是十进制,转成BCD码时就是0001 0101,前四位表示是1,后四位表示是5,因为字是BCD码,所以此处表示十进制15.而如果是转成二进制时就是 0000 1111,可见两者没有任何的关系的。
如果用四位表示是BCD,那么如果我用8位来表示十进制下的一个数字呢?如:
XXXX 0001 XXXX 0101,这个是用每个字节表示一个十进制数字,它显然也是BCD的一种,只不过我们做了一下规字,高位4个bit无用,也就是我标注为X的地方表示无意义。
联想这两种方式,你很容易想到,这就是传说中的压缩BCD与非压缩BCD.没错!所以如果对于非压缩BCD只有8,4,2,1位权有作用,所以叫做8421码也说得过去的。于是乎,8421有人认为是BCD的代名词,有人认为专指压缩BCD。这玩意我也搞不清了——还是说BCD比较合适些。起个8421名字反倒真让人觉得画蛇添足了!
你不觉得么?那么对于BCD的另一个名字你会说些什么呢,它被叫做“二进码十进制”,这个你要是说给老外,他肯定不懂,还是大陆那些搞翻译的给整的名字。Binary-Coded Decimal(BCD),直接就叫BCD行么?翻个毛啊,我认为术语之所以叫术语,还是术的好,不要乱译。不然一楼真拿8421除2去了,结果算的还不错,是4210.5,呵呵。
二进制就是二进制,BCD是用二进制的形式来表示十进制。原因就在于人经常使用十进制,计算机这玩意只认识二进制,为了更好的“沟通”才有这样Binary-Coded Decimal(BCD)码。有人还称其为二转十进制码——这都什么玩意啊?
所以在汇编语言中还存在AAA等类的调整算法,就是为了更好地让计算机适应人的计算。
其他的没了,俺算术不好,顺便问一下,8421除以二真的是4210.5么?
BCD码分别两种,一种是是压缩BCD,一种是非压缩BCD,而8421码在某些书上又称之为压缩BCD码,也就是说8421是BCD码中的一种。毕竟这个是大陆的一种叫法,是从权值上叫的,如果你真向老外请教8421码,老外肯定不会知道,之所以是大陆上的一种不规范叫法,所以在定义与理解上也是有不同的。
所谓的二进制码,指的利用除余法求得的二进制,比如1111表示的是15,就是十进制除2的转换方式。
但8421则是早用四个bit表示一个十进制数字。也就是说将每个十进制数据写成一个4bit的二进制。也就是说四位本来最大应该是15,但在bcd中最大只可能是9!也就是说我们只用到了最高位为8位权,同时用到了4,2,1的位权,所以起了名字叫8421码。
如:
15是十进制,转成BCD码时就是0001 0101,前四位表示是1,后四位表示是5,因为字是BCD码,所以此处表示十进制15.而如果是转成二进制时就是 0000 1111,可见两者没有任何的关系的。
如果用四位表示是BCD,那么如果我用8位来表示十进制下的一个数字呢?如:
XXXX 0001 XXXX 0101,这个是用每个字节表示一个十进制数字,它显然也是BCD的一种,只不过我们做了一下规字,高位4个bit无用,也就是我标注为X的地方表示无意义。
联想这两种方式,你很容易想到,这就是传说中的压缩BCD与非压缩BCD.没错!所以如果对于非压缩BCD只有8,4,2,1位权有作用,所以叫做8421码也说得过去的。于是乎,8421有人认为是BCD的代名词,有人认为专指压缩BCD。这玩意我也搞不清了——还是说BCD比较合适些。起个8421名字反倒真让人觉得画蛇添足了!
你不觉得么?那么对于BCD的另一个名字你会说些什么呢,它被叫做“二进码十进制”,这个你要是说给老外,他肯定不懂,还是大陆那些搞翻译的给整的名字。Binary-Coded Decimal(BCD),直接就叫BCD行么?翻个毛啊,我认为术语之所以叫术语,还是术的好,不要乱译。不然一楼真拿8421除2去了,结果算的还不错,是4210.5,呵呵。
二进制就是二进制,BCD是用二进制的形式来表示十进制。原因就在于人经常使用十进制,计算机这玩意只认识二进制,为了更好的“沟通”才有这样Binary-Coded Decimal(BCD)码。有人还称其为二转十进制码——这都什么玩意啊?
所以在汇编语言中还存在AAA等类的调整算法,就是为了更好地让计算机适应人的计算。
其他的没了,俺算术不好,顺便问一下,8421除以二真的是4210.5么?
全部回答
- 1楼网友:持酒劝斜阳
- 2021-03-12 20:05
当然不一样,除以二得到的是4210.5,而二进制中只有1和0,所以不一样。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯