《二、八、十、十六进制简介》由会员分享,可在线阅读,更多相关《二、八、十、十六进制简介(17页珍藏版)》请在金锄头文库上搜索。
1、计算机各进制简介一、二进制数二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的 数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。二进制数(binaries)是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二 进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制(因为我们有十个手指, 所以十进制是比较合理的选择,用手指可以表示十个数字,0的概念直到很久以后才出现, 所以是110而不是09)。电子计算机出现以后,使用电子管来表示十种状态过于复杂, 所以所有的电子计算机中只有两种基本的状态,开和关。也就是说,电子管的两种状态决定 了以电子管为
2、基础的电子计算机采用二进制来表示数字和数据。常用的进制还有8进制和 16进制,在电脑科学中,经常会用到16进制,而十进制的使用非常少,这是因为16进制 和二进制有天然的联系:4个二进制位可以表示从0到15的数字,这刚好是1个16进制 位可以表示的数据,也就是说,将二进制转换成16进制只要每4位进行转换就可以了。二进制的“00101000”直接可以转换成16进制的“28”。字节是电脑中的基本存储单位, 根据计算机字长的不同,字具有不同的位数,现代电脑的字长一般是32位的,也就是说, 一个字的位数是32。字节是8位的数据单元,一个字节可以表示0255的十进制数据。 对于32位字长的现代电脑,一个字
3、等于4个字节,对于早期的16位的电脑,一个字等于2 个字节。1、如果一个二进制数(整型)数的第零位的值是1,那么这个数就是奇数;而如果该 二进制数位是0,那么这个数就是偶数。2如果一个二进制数的低端n位都是零,那么这个数可以被个数等于2F。4、如果一个二进制数的第零位到第n - 1位都是1,而且其他各位2n整除。3、如果一个二进制数的第n位是一,而其他各位都是零,那么这都是0,那么这个数 等于2F - 1。5、将一个二进制数的所有位左移移位的结果是将该数乘以二。6、将一个无符号二进制数的所有位右移一位的结果等效于该数除以二(这对有符号数 不适用)。余数会被下舍入(rounddown)7、将两个
4、n位的二进制数相乘可能会需要2*n位来保存结果。&将两个n位的二进制数相加或者相减绝不会需要多于n 1位来保存结果。9、将一个二进制数的所有位取反(就是将所有的一改为零,所有的零改为一)等效于 将该数取负(改变符号)再将结果减一。10、将任意给定个数的位表示的最大无符号二进制数加一的结果永远是零。11、零递减(减一)的结果永远是某个给定个数的位表示的最大无符号二进制数。12、n位可以表示2n个不同的组合。13、数2年包含n位,所有位都是一。运算二进制数的运算除了有四则运算外,还可以有逻辑运算下面分别予以介绍。二进制数的四则运算二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算。其算法规
5、则如下:加运算:0 0=0,0 1=1,1 0=1,1 1=10,#逢 2 进 1;减运算:1-1=0, 1-0=1,0-0=0,0-1=1,#向高位借 1 当 2;乘运算:0x0=0,0x1=0,1x0=0,1x1=1,#只有同时为T时结果才为“T;除运算:二进制数只有两个数(0, 1),因此它的商是1或0。加法 0+0=0,0+1=1+0=1,1+1=10减法 00=0, 10=1, 11=0, o 1=-1, 10100-1010=1010乘法 0x0=0, 0x 1=1x0=0, 1x1=1除法0-1=0,仁1=1只有0和1两个数码,基数为二。加法如下:(1)首先是最右数码位相加。这里
6、加数和被加数的最后一位分别为“0”和“T,根据加法 原则可以知道,相加后为“1”。(2)再进行倒数第二位相加。这里加数和被加数的倒数第二位都为“T,根据加法原则 可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“T向高一位进“1”。(3)再进行倒数第三位相加。这里加数和被加数的倒数第二位都为“0”,根据加法原则 可以知道,本来结果应为0”,但倒数第二位已向这位进T了,相当于要加“被加数”、“加数” 和“进位”这三个数的这个数码位,所以结果应为0 1=1。(4)最后最高位相加。这里加数和被加数的最高位都为“1”,根据加法原则可以知道, 相加后为“(10)2”。一位只能有一个
7、数字,所以需要再向前进1”,本身位留下“0”,这样该 位相加后就得到“0”,而新的最高位为“1减法(1)首先最后一位向倒数第二位借“1”,相当于得到了(10) 2,也就是相当于十进制 数中的2,用2减去1得1。(2)再计算倒数第二位,因为该位同样为“0”,不及减数“1”大,需要继续向倒数第三位 借“1”(同样是借“1”当“2”),但因为它在上一步中已借给了最后一位“1”(此时是真实的“1”), 则倒数第二位为1,与减数“1”相减后得到“0”。(3)用同样的方法倒数第三位要向它们的上一位借“1”(同样是当“2”),但同样已向它 的下一位(倒数第二位)借给“1”(此时也是真实的“1”),所以最终得
8、值也为“0”。(4)被减数的倒数第四位尽管与前面的几位一样,也为0”,但它所对应的减数倒数第 四位却为“0”,而不是前面几位中对应的“1”,它向它的高位(倒数第五位)借“1”(相当于“2”) 后,在借给了倒数第四位“1”(真实的“1”)后,仍有“1”余,1-0=1,所以该位结果为“1”。(5) 被减数的倒数第五位原来为“1”,但它借给了倒数第四位,所以最后为“0”,而此时 减数的倒数第五位却为“T,这样被减数需要继续向它的高位(倒数第六位)借“T (相当于 “2”),2-1=1 o(6) 被减数的最后一位本来为“1”,可是借给倒数第五位后就为“0”了,而减数没有这个 位,这样结果也就是被减数的
9、相应位值大小,此处为0”。在二进制数的加、减法运算中一定要联系上十进制数的加、减法运算方法,其实它们的 道理是一样的,也是一一对应的。在十进制数的加法中,进“1”仍就当“1”,在二进制数中也 是进“1”当“1”。在十进制数减法中我们向高位借“1”当“10”,在二进制数中就是借T当“2”。而 被借的数仍然只是减少了“1”,这与十进制数一样。乘法把二进制数中的“0”和“1”全部当成是十进制数中的“0”和“1”即可。根据十进制数中的乘法 运算知道,任何数与“0”相乘所得的积均为“0”,这一点同样适用于二进制数的乘法运算。只 有“1”与“1”相乘才等于“1”。乘法运算步骤:(1) 首先是乘数的最低位与
10、被乘数的所有位相乘,因为乘数的最低位为0”,根据以上 原则可以得出,它与被乘数(1110) 2的所有位相乘后的结果都为“0”。(2) 再是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为冷”,根据以 上原则可以得出,它与被乘数(1110) 2的高三位相乘后的结果都为“1”,而于最低位相乘 后的结果为“0”。(3) 再是乘数的倒数第三位与被乘数的所有位相乘,同样因为乘数的这一位为1”,处 理方法与结果都与上一步的倒数第二位一样,不再赘述。(4) 最后是乘数的最高位与被乘数的所有位相乘,因为乘数的这一位为9”,所以与被 乘数(1110) 2的所有位相乘后的结果都为0”。(5) 然后再按照前
11、面介绍的二进制数加法原则对以上四步所得的结果按位相加(与十 进制数的乘法运算方法一样),结果得到(1110) 2x (0110) 2= (1010100) 2o除法(1) 首先用“1”作为商试一下,相当于用“1”乘以除数“110”,然后把所得到的各位再与 被除数的前4位“1001”相减。按照减法运算规则可以得到的余数为“011”。(2) 因为“011”与除数“110”相比,不足以被除,所以需要向低取一位,最终得到“0111”, 此时的数就比除数“110”大了,可以继续除了。同样用T作为商去除,相当于用T去乘除数“110”,然后把所得的积与被除数中当前四位“0111”相减。根据以上介绍的减法运算
12、规则可 以得到此步的余数为“1”。(3)因为“T要远比除数“110”小,被除数向前取一位后为“1T,仍不够“110”除,所以 此时需在商位置上用“0”作为商了。(4)然后在被除数上继续向前取一位,得到“110”。此时恰好与除数“110”完全一样, 结果当然是用“T作为商,用它乘以除数110”后再与被除数相减,得到的余数正好为0”。证 明这两个数能够整除。这样一来,所得的商(1101) 2就是两者相除的结果。ASCII码ASCII码就是被普遍采用的一个英文字符信息编码方案,它用850二进制数位二进制数表示各种字母和符号,例如:01000001 表示 A 01000010 表示 B8个二进制位称为
13、一个字节(Byte,代号为B)。字节是最基本的信息储存单位,一个 字节可以储存一个英文字母或符号编码,两个字节可以储存一个汉字编码。同二进制数一样,二进制编码也是计算机内部用来表示信息的一种手段,人们平时和计 算机打交道时,根本不用理它。我们仍然用人们习惯的方式输入或者输出信息,期间的转换 则由计算机自动去完成。计算机中一个存储单位(即一个字节)里存放的究竟是二进制数还是二进制编码?是英 文是汉字?事实上它们都由程序进行识别。例如,表示英文字符的8位二进制编码的最高 位是0,而表示汉字两个8位二进制编码的最高位是1,这一点就是程序区别存储单位里存 放的是英文还是汉字的一个依据。汉字编码1980
14、年中国为6763个常用汉字规定了编码,称为信息交换用汉字编码字符集基本 集,简称GB2312-80,每个汉字占16位。在Windows95/98/2000/XP简体中文版操作 系统中,使用的是汉字内码扩展规范,简称GBK,每个汉字占16位,它能表示20902 个汉字。Linux简体中文版操作系统中,使用的是UTF-8编码,大多数汉字占24位,能表 示7万多个汉字。实例对照十进制数一二进制数(注:十进制数只有0到9)十进制0123456789二进制000000010010001101000101011001111000100116100004610111099110001188811011110
15、0076541110111100110注:一般为了区别二进制数与十进制数,再二进制数后加上一个“B”,如14510010001B通常我们所说的数字,一般都是十进制,10分就1角,10角就1元这些数字只是 由十个数组成,那就是:0、1、2、3、4、5、6、7、8、9我们一般称之为基数(base)都是这些数,但它们处于不同位置所代表的重量就不一样了哦,如111,都是1但就是 不一样,这就涉及到了位权的概念了,可用以下实例来说明。一个十进制数结4553.87可 表示为:4553.87 = 4x 103 4-5x103 + 5x101 +3 x 10 + 8x 10_1-f7x 10-3在这个数中,有些相同的数字由于处在不同的位置,它们代表的数值的大小也不同,各 位数字所代表的数值的大小是由位权来决定的。位权是一个乘方值,乘方的底数为进位计数 制的基数(本例中为10),而指数由各位数字在数中的位置来决定。以上的十进制数中, 从左至右各位数字的位权分别为:103、102、10J 10、10-110。一般而言,在进位制中,把一个数中各位数字为1时代表的数值大小称为位权。如456 它们的位权就是当各位为1时的数值大小,456中的4的位