关于数的表示和运算(进制转换)

进制转换作为计算机入门基础知识,无论是计算机基础课,还是其它和0、1有关的学科都会涉及当进制转换问题,例如数字电路。能不能学计算机,在计算机行业恰饭,进制转换就是第一道门槛。

一、数值的表示

  1. 计数值
    按一定进位原则进行计数的方法称为计数制,也称为数值。对任意的进制数x,可以用下式表示为:
    在这里插入图片描述
    看这一串公式,我选择放弃。同学,你不适合读书,还是另选出路吧。
    在这里插入图片描述

① ai为数码,每一种进制数都由固定的数字符号来表示,这个符号称为:数码。
不懂,还有救吗?
你需知道:
二进制有2个数码:0和1;
八进制有8个数码:0、1、2、3、4、5、6和7;
十进制有10个数码:0~9(这个不用说了);
十六进制有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E和F(字母不区分大小写)。

也就是说某某进制就有某某个数码,但你知道它们第一个数都是从0开始的,十到十五采用字母替代,主要是为了展现十六进制的个性。

②i为数位,数位是指数码在一个数中所处的位置。
例如:八进制123.123,从左到右的数位分别为:2、1、0、-1、-2、-3。
③r为基数,基数是指在某计数制中,每个数位上能使用的数码个数。
一句话什么进制什么基数。
例如二进制的基数就是2;八进制的基数就是8。
④ri为权,权是基数的幂,这个幂次由数位决定。
例如八进制123.123,第二位的权1×82

  1. 计算机中常用的计数制
    进制表示方式:
    ①用括号将数字括起,后面加数制区分。例如八进制(112)8
    ②用后缀区分,二进制、十进制、八进制、十六进制后缀分别为B、D、O和H(注:不区分大小写)。

二、进制转换
①其它进制转换为十进制
任何进制转换成十进制都特别简单,按权展开即可。
例如:
在这里插入图片描述
②十进制转换为其它进制
常用的有降幂法和乘除法。两种方法其实是一样的,个人认为只要计算能力够强,何必在乎在些呢?
所以我们就不按常理出牌,用自己的方法来计算。
例如:62D转换为二进制。
62和64(26)比较接近,大于32(25)。那么62转换为二进制一定会有100,000,62-32=30;24=16,就有110,000;同理,14>23,则111,000,剩余6;我们知道6的二进制数为110。那么62转换为二进制为111,110。
如果有小数怎么办?
乘法。例如:0.5转换为二进制。0.5×2=1,则0.5转化为二进制为0.1。
十进制转换八进制、十六进制也是同样的方法。
③二进制和八进制的转换
一位八进制需用上3位二进制。
例如:(110)8=(001,001,000)2;最左边应该从非零数字开始,如果是带符号进制另说,(110)8=(1001000)2
④二进制转换十六进制
同理,一位十六进制需用上4位二进制。

三、运算
啥进制就是逢啥进一。例如:二进制,逢二进一。

1、 无符号运算
无符号进制数就是不用管正负号,无符号其实它根本就没有正负号。
①算术运算就是加减乘除和数学中类似。但一定要清楚逢啥进啥。如果你确实搞不清楚就先换算成十进制运算得出结果后再换算。
②逻辑运算
与(AND):∧,有零相与为0,非零相与为1;
或(OR):∨,双零为0,否则为1;
非(NOT):﹣,非零为1,非1为0;
异或(XOR):⊕,相同为0,相反为1。

2、带符号二进制数的表示
你能看到此处,真的是不容易。
你只需知道带符号即最左边第一个数为符号位,0为正数,1为负数。
带符号数分为原码,反码和补码。
其中正数的反码、补码和原码相同。
而负数的反码需要除符号位按位取反,即0变1,1变0;补码则需加1。
原码:1111,0011
反码:1000,1100
补码:1000,1101

四、补码加减溢出
溢出字面意思就是超过容器的容量,装不下的一部分流失了。
例如:字长为8位的-64D+64D=0,[-64]=1100 0000;[64]=0100 0000,相加结果为1 0000 0000,结果为9位,进位1肯定是保不住了,就是溢出了。
判断溢出有两种方法:
①利用符号判别结果是否溢出

若两个同号数相加,结果的符号与之相反,则溢出。
若两个异号数相减,结果的符号与减数相同,则溢出。
若两个异号相加或两个同号相减,则不溢出。

②利用运算过程中进位产生情况判别运算结果是否溢出

若次高位和最高位不同时产生进位或错位,则溢出。
若次高位和最高都产生进位或错位,则不溢出。

五、BCD码的表示与运算
BCD码是二进制编码的十进制数的简称。用4位二进制来表示十进制中的0~9。
①压缩8421BCD码的加、减运算(十进制一位变为四位二进制)
例如:16D+18D:
00010110+00011000=0010 1110。
压缩8421BCD运算的十进制调整规则如下:

⑴加法运算后十进制调整规则
若加法和的个位大于9或向十位有进位,则需要“加06H调整”,即所得和要加上00000110B;
若加法和十位大于9或向百位有进位,则需要“加60H调整”,即所得和要加上01100000B。
⑵减法运算后的十进制调整规则
若减法差的个位大于9或向十位有借位,则需要“减06H调整”,即所得要减去0000 0110B;
若减法差的十位大于9或向百位有进位,则需要“减60H”,即所得差要减去0110 0000B。

②非压缩8421BCD码的加、减运算(十进制一变为八位二进制)
假设任一非压缩BCD码表示为d7d6d5d4d3d2d1d0,则进行加/减运算时,若和/差大于9或d3位向d4位有进位/借位时,就要进行十进制调整操作。
将d4 ~ d0位清零,即所得值与1111 1111 0000 1111相与。

发布了19 篇原创文章 · 获赞 2 · 访问量 1091

猜你喜欢

转载自blog.csdn.net/qq_42692319/article/details/103495115