作业帮 > 综合 > 作业

一个简单的C语言题分别用以下指定的形式来表示十进制数41,写出其编码.(1)原码(2)反码(3)补码(4)BCD码题目一

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 21:55:40
一个简单的C语言题
分别用以下指定的形式来表示十进制数41,写出其编码.
(1)原码
(2)反码
(3)补码
(4)BCD码
题目一字不漏,顺便问下编码是怎么回事,BCD码又是怎么回事的,
原码,反码,补码只能用二进制的形式表示吗?
为什么需要编码?因为计算机世界只有0和1之分,而现实世界,我们常用的是十进制.为了让计算机和现实世界联系起来,编码便诞生了.计算机中,采用字节来存储信息,一个字节有8个二进制位组成.
首先需要知道,编码方式有很多种,如ASCII编码,BCD编码等等.最后被人们广泛接受和使用的,才是最经典的.你说的BCD码用的不多,至少我是这么认为的.说说BCD编码规则,它是用4位二进制数来表示一个十进制数.如,41的BCD码为 0100 0001,这个好理解吧!0100表示4,0001表示1.
而原码、反码和补码是计算机世界采用的编码方式,现在BCD码在计算机中用的很少.计算机实际存放的是数据的补码,原码和反码是为了让人们好理解,弄出来的概念.
最后来回答你的问题,41的原码为0010 1001 ,反码为0010 1001,补码和原码一样,还是0010 1001.
为什么是这样的呢,先看三个规则:
1.所谓原码就是二进制定点表示法,即最高位为号符位,“0”表示正,“1”表示负,其余位表示数值的大小.
2.反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外.
3、补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1.
41 = 32+8+1,因为是正数,所以最高位为0,这样得出来的是原码.反码呢,按照规则,也是这么多,好理解吧!补码就稍微麻烦点,如果原数是一个正数,则补码和原码相同,如果原数是一个负数,则结果是其反码的最后一位加1.
相信你应该懂了!希望可以帮到你!