计算机中的数制

数制是指数的制式,是人们利用符号计数的一种科学方法。

一、计算机中的各种数制

在计算机中常用的数制有十进制、二进制、八进制和十六进制等。

1. 十进制

十进制是我们经常用到的进位数制,它包括:0、1、2、3、4、5、6、7、8、9共十个数字符号。这十个数字符号又称为“数码”,每个数码在数中最多可有两个值的概念,一个是数字符号的数值,另一个是该数字符号的权。

举个例子,例如:十进制数34中的数码3,其本身的值为3,它的权为10^1,所以它实际代表的值是30。在数学上,数制中数码的个数定义为基数,故十进制的基数为10

任何一个十进制数都可以展开成幂级数形式,例如:

423.76 = 4*10^2 + 2*10^1 + 3*10^0 + 7*10^-1 + 6*10^-2

2. 二进制

二进制总共有01两个数码,任何二进制数都由这两个数码组成。

二进制数的基数为2,做加法时,遵循逢21的进位原则。

二进制展开成幂级数形式,如下所示:

10110.11 = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2

其中,指数2^4、2^3、2^2、2^1、2^0、2^-1、2^-2为权,2为基数,其余和十进制时相同。

3. 十六进制

十六进制有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个数码,任何一个十六进制数都是由其中的一些或全部数码构成。

十六进制数的基数为16,进位计数为逢161

十六进制展开成幂级数形式,例如:

63F.B1H = 6*16^2 + 3*16^1 + F*16^0 + B*16^-1 + 1^16^-2

为了区分不同的数制,通常在被标记数后,加上B、D、H大写字母用来表示二进制、十进制和十六进制。其中十进制的D可以省略。

二、不同数制间数的转换

1. 二进制和十进制数间的转换

二进制数转换成十进制数只要把要转换数按权展开后相加即可。例如:

10110.11B = 1*2^4 + 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 + 1*2^-1 + 1* 2^-2 = 22.75

十进制数转换成二进制数的转换过程是上述转换过程的逆过程,但是十进制整数和小数转换成二进制整数和小数的方法是不同的。

(1)十进制整数转换成二进制整数

常用的方法是除2取余法,首先用2除要转换的十进制数,得到一个商和一个余数,然后继续用2除上次得到的商,直到商为0为止,最后把各次余数按最后得到的为最高位,最早得到的为最低为,依次排列起来便得到所求的二进制数。

举例说明:求出231所对应的二进制数,其竖式为:

231转换成二进制数

按照上图箭头方向将余数排列可得:231 = 11100111B

(2)十进制小数转换成二进制小数

十进制小数转换成二进制小数通常采用乘2取整法,首先用2去乘要转换的十进制小数,将乘积结果的整数部分提出来,然后继续用2去乘上次乘积的小数部分,直到所得积的小数部分为0或满足所需精度为止,最后把各次整数按最先得到的为最高位、最后得到的为最低位,依次排列起来便得到所求的二进制小数。

举例说明:把十进制小数0.6879转换为二进制小数,其解法为:

0.6879转换成二进制数

按照上图箭头方向将整数排列可得:0.6879 ≈ 0.1011B

需要注意的是:任何十进制整数都可以精确地转换成一个二进制整数,但任何十进制小数却不一定可以精确地转换成一个二进制小数。

2. 十六进制和十进制数间的转换

(1)十六进制数转成十进制数

十六进制数转换成十进制数的方法和二进制数转换成十进制数的方法类似,即把十六进制数按权展开后相加,例如:

3FEAH = 3*16^3 + 15*16^2 + 14*16^1 + 10*16^0 = 16362

(2)十进制数转成十六进制数

1)十进制整数转成十六进制整数

十进制整数转换成十六进制整数,采用的是除16取余法。和十进制转成二进制的方法类似,用16连续去除要转换的十进制整数,直到商数小于16为止,然后把各次余数按逆序排列起来所得的数,便是所求的十六进制数。

举例说明:把十进制数3901转换成十六进制数,其解法为:

3901转换成十六进制数

因此,3901 = F3DH

2)十进制小数转成十六进制小数

十进制小数转换成十六进制小数的方法是乘16取整法,即把欲转换成十六进制小数的十进制小数连续乘以16,直到所得乘积的小数部分为0或达到所需精度为止,最后把各次整数按最先得到的为最高位,最后得到的为最低位,依次排列起来便得到所求的十六进制小数。

举例说明:求0.76171875所对应的十六进制数,其解法为:

0.76171875转换成十六进制数

因此,0.76171875 = 0.C3H

3. 二进制和十六进制数间的转换

二进制和十六进制间的转换十分方便,这就是为什么人们要采用十六进制对二进制加以表达的原因了。

(1)二进制数转成十六进制数

二进制数转成十六进制数采用四位合一位法,即从二进制的小数点开始,或左或右每四位一组,不足四位以零补位,然后分别把每组用十六进制数码表示,并按序相连。

举例说明:将1101111100011.10010100B转成十六进制数,其解法为:

二进制1101111100011.10010100转成十六进制

因此,1101111100011.10010100B = 1BE3.94H

(2)十六进制数转成二进制数

转换方法是把十六进制数的每位分别用四位二进制数码表示,然后把它们连成一体。

举例说明,把十六进制数3AB.7A5转成二进制数,其解法为:

十六进制数3AB.7A5转换成二进制数

因此,3AB.7A5H = 1110101011.011110100101B

三、二进制数的计算

在计算机中,运算分为算术运算与逻辑运算两类。算术运算包括:加、减、乘、除运算;逻辑运算包括:逻辑乘、逻辑加、逻辑非、逻辑异或等。

1. 算术运算

(1)加法运算

二进制的加法法则是:

0 + 0 = 0
1 + 0 = 0 + 1 = 1
1 + 1 = 0(向邻近高位进位)
1 + 1 + 1 = 1(向邻近高位进位)

(2)减法运算

二进制的减法法则是:

0 - 0 = 0
1 - 1 = 0
1 - 0 = 1
0 - 1 = 1(向邻近高位借1当作2)

两个二进制数相减时,要先判断它们的大小,把大数作为被减数,小数作为减数,差的符号由两数关系决定。

在减法过程中要注意低位向高位借的1应当作2

(3)乘法运算

二进制乘法法则是:

0 * 0 = 0
1 * 0 = 0 * 1 = 0
1 * 1 = 1

两个二进制数相乘与两个十进制数相乘类似,可以用乘数的每一位分别去乘以被乘数,所得结果的最低位与相应乘数位对齐,最后把所有结果加起来,便得到积。

举例说明:两个四位的二进制数1101B1001B相乘,其解法为:

被乘数              1101B
乘数              X 1001B
------------------------------
                    1101
                   0000
                  0000
                 1101
------------------------------
乘积             1110101B

在计算机中,普遍采用部分积左移和部分积右移的方法。前者从乘法最低位向高位逐位进行,后者从乘法最高位向低位进行,其本质异曲同工。

部分积右移法采用边相乘边相加的方法,每次加被乘数或0时总要先使部分积右移,而被乘数的位置可保持不变。

(4)除法运算

除法是乘法的逆运算,二进制除法也是从被除数的最高位开始,查找出够减除数的位数,并在其最低位处上商1和完成它对除数的减法运算,然后把被除数的下一位移到余数位置上;若余数不够减除数,则上商0,并把被除数的再下一位移到余数位置上;若余数够减除数,则上商1并进行余数减除数。这样重复进行,直到全部被除数的各位都下移到余数位置上为止。

2. 逻辑运算

逻辑运算由专门的逻辑电路完成。

(1)逻辑乘运算

逻辑乘又称逻辑与,常用ʌ符号表示。逻辑乘运算法则为:

0 ʌ 0 = 0
1 ʌ 0 = 0 ʌ 1 = 0
1 ʌ 1 = 1

(2)逻辑加运算

逻辑加又称逻辑或,常用算符v表示。逻辑加的运算规则为:

0 v 0 = 0
1 v 0 = 0 v 1 = 1
1 v 1 = 1

(3)逻辑非运算

逻辑非运算又称逻辑取反,常采用-运算符表示。运算规则为:

非0 = 1
非1 = 0

(4)逻辑异或

逻辑异或又称为半加,是不考虑进位的加法,常采用算符表示。逻辑异或的运算规则为:

0 ⊕ 0 = 1 ⊕ 1 = 0
1 ⊕ 0 = 0 ⊕ 1 = 1

异或运算可用于把某数的若干位取反。异或运算还可用于乘除法运算中的符号位处理。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,816评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,729评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,300评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,780评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,890评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,084评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,151评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,912评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,355评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,666评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,809评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,504评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,150评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,121评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,628评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,724评论 2 351