加法,我们在日常生活、工作中都经常用到,但不知道大家对“二进制数
”是否知道呢?本文收集整理了一些资料,希望本文能对各位读者有比较大的参考价值。
概述
二进制数(binaries)是逢2进位的进位制,0、1是基本算符;计算机运算基础采用二进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制(因为我们有十个手指,所以十进制是比较合理的选择,用手指可以表示十个数字,0的概念直到很久以后才出现,所以是1-10而不是0-9)。电子计算机出现以后,使用电子管来表示十种状态过于复杂,所以所有的电子计算机中只有两种基本的状态,开和关。
二进制数字
二进制的“00101000”直接可以转换成16进制的“28”。一个字是电脑中的基本存储单元,根据计算机字长的不同,字具有不同的位数,现代电脑的字长一般是32位的,也就是说,一个字的位数是32。字节是8位的数据单元,一个字节可以表示0-255的数据。对于32位字长的现代电脑,一个字等于4个字节,对于早期的16位的电脑,一个字等于2个字节。
加法0+0=0,0+1=1+0=1,1+1=10
减法0-0=0,1-0=1,1-1=0,0-1=-1,10100-1010=1010
乘法0×0=0,0×1=1×0=0,1×1=1
除法0÷1=0,1÷1=1
只有0和1两个数码,基数为二。
特性
1、如果一个二进制数(整型)数的第零位的值是1,那么这个数就是奇数;而如果该位是0,那么这个数就是偶数。
2、如果一个二进制数的低端n位都是零,那么这个数可以被2n整除。
3、如果一个二进制数的第n位是一,而其他各位都是零,那么这个数等于2^n。
4、如果一个二进制数的第零位到第n - 1位都是1,而且其他各位都是0,那么这个数等于2^n - 1。
5、将一个二进制数的所有位左移移位的结果是将该数乘以二。
6、将一个无符号二进制数的所有位右移一位的结果等效于该数除以二(这对有符号数不适用)。余数会被下舍入(rounddown)
7、将两个n位的二进制数相成可能会需要2*n位来保存结果。
8、将两个n位的二进制数相加或者相减绝不会需要多于n 1位来保存结果。
9、将一个二进制数的所有位取反(就是将所有的一改为零,所有的零改为一)等效于将该数取负(改变符号)再将结果减一。
10、将任意给定个数的位表示的最大无符号二进制数加一的结果永远是零。
11、零递减(减一)的结果永远是某个给定个数的位表示的最大无符号二进制数。
12、n位可以表示2n个不同的组合。
13、数2年包含n位,所有位都是一。
运算
二进制数的运算除了有四则运算外,还可以有逻辑运算。
下面分别予以介绍。
二进制数的四则运算
二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算。其算法规则如下:
加运算: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;
乘运算:0×0=0,0×1=0,1×0=0,1×1=1,#只有同时为“1”时结果才为“1”;
除运算:二进制数只有两个数(0,1),因此它的商是1或0。
加法运算
如下:
(1)首先是最右数码位相加。这里加数和被加数的最后一位分别为“0”和“1”,根据加法原则可以知道,相加后为“1”。
(2)再进行倒数第二位相加。这里加数和被加数的倒数第二位都为“1”,根据加法原则可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“1”向高一位进“1”。
(3)再进行倒数第三位相加。这里加数和被加数的倒数第二位都为“0”,根据加法原则可以知道,本来结果应为“0”,但倒数第二位已向这位进“1”了,相当于要加“被加数”、“加数”和“进位”这三个数的这个数码位,所以结果应为0 1=1。
(4)最后最高位相加。这里加数和被加数的最高位都为“1”,根据加法原则可以知道,相加后为“(10)2”。一位只能有一个数字,所以需要再向前进“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”),所以最终得值也为“0”。
(4)被减数的倒数第四位尽管与前面的几位一样,也为“0”,但它所对应的减数倒数第四位却为“0”,而不是前面几位中对应的“1”,它向它的高位(倒数第五位)借“1”(相当于“2”)后,在借给了倒数第四位“1”(真实的“1”)后,仍有“1”余,1 –0=1,所以该位结果为“1”。
(5)被减数的倒数第五位原来为“1”,但它借给了倒数第四位,所以最后为“0”,而此时减数的倒数第五位却为“1”,这样被减数需要继续向它的高位(倒数第六位)借“1”(相当于“2”),2–1=1。
(6)被减数的最后一位本来为“1”,可是借给倒数第五位后就为“0”了,而减数没有这个位,这样结果也就是被减数的相应位值大小,此处为“0”。
在二进制数的加、减法运算中一定要联系上十进制数的加、减法运算方法,其实它们的道理是一样的,也是一一对应的。在十进制数的加法中,进“1”仍就当“1”,在二进制数中也是进“1”当“1”。在十进制数减法中我们向高位借“1”当“10”,在二进制数中就是借“1”当“2”。而被借的数仍然只是减少了“1”,这与十进制数一样。
乘法运算
把二进制数中的“0”和“1”全部当成是十进制数中的“0”和“1”即可。根据十进制数中的乘法运算知道,任何数与“0”相乘所得的积均为“0”,这一点同样适用于二进制数的乘法运算。只有“1”与“1”相乘才等于“1”。乘法运算步骤:
(1)首先是乘数的最低位与被乘数的所有位相乘,因为乘数的最低位为“0”,根据以上原则可以得出,它与被乘数(1110)2的所有位相乘后的结果都为“0”。
(2)再是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为“1”,根据以上原则可以得出,它与被乘数(1110)2的高三位相乘后的结果都为“1”,而于最低位相乘后的结果为“0”。
(3)再是乘数的倒数第三位与被乘数的所有位相乘,同样因为乘数的这一位为“1”,处理方法与结果都与上一步的倒数第二位一样,不再赘述。
(4)最后是乘数的最高位与被乘数的所有位相乘,因为乘数的这一位为“0”,所以与被乘数(1110)2的所有位相乘后的结果都为“0”。
(5)然后再按照前面介绍的二进制数加法原则对以上四步所得的结果按位相加(与十进制数的乘法运算方法一样),结果得到(1110)2×(0110)2=(1010100)2。
二进制数字
(1)首先用“1”作为商试一下,相当于用“1”乘以除数“110”,然后把所得到的各位再与被除数的前4位“1001”相减。按照减法运算规则可以得到的余数为“011”。
(2)因为“011”与除数“110”相比,不足以被除,所以需要向低取一位,最终得到“0111”,此时的数就比除数“110”大了,可以继续除了。同样用“1”作为商去除,相当于用“1”去乘除数“110”,然后把所得的积与被除数中当前四位“0111”相减。根据以上介绍的减法运算规则可以得到此步的余数为“1”。
(3)因为“1”要远比除数“110”小,被除数向前取一位后为“11”,仍不够“110”除,所以此时需在商位置上用“0”作为商了。
(4)然后在被除数上继续向前取一位,得到“110”。此时恰好与除数“110”完全一样,结果当然是用“1”作为商,用它乘以除数“110”后再与被除数相减,得到的余数正好为“0”。证明这两个数能够整除。
这样一来,所得的商(1101)2就是两者相除的结果。
二进制
在日常生活中,我们常常使用各种编码,如身份证号码、电话号码、邮政编码等,这些编码都是由十进制数组成的。
同理,在计算机中采用由若干位二进制数组成的编码【简称二进制编码】来表示字母、符号、汉字、颜色等非数值信息。
为了表示不同类型的信息,人们研究出了各种各样的编码方案。
其中,ASCII码就是被普遍采用的一个字符信息编码方案,它用8
位二进制数表示各种字母和符号,例如:
01000001表示A 01000010表示B
汉字字数较多,因此用16位二进制数表示常用的汉字,例如:
11000111 11100000 表示“青”
10110101 10111010 表示“岛”
1980年中国为6763个常用汉字规定了编码,称为国家标准汉字编码,简称GB码。在Windows95/98/2000/xp中文版操作系统中,使用的是GBK码,它能表示20902个汉字。
8个二进制位称为一个字节【Byte,简称为B】。字节是最基本的信息储存单位,一个字节可以储存一个英文字母或符号编码,两个字节可以储存一个汉字编码。
同二进制数一样,二进制编码也是计算机内部用来表示信息的一种手段,人们平时和计算机打交道时,根本不用理它。我们仍然用人们习惯的方式输入或者输出信息,期间的转换则由计算机自动去完成。
计算机中一个存储单位(即一个字节)里存放的究竟是二进制数还是二进制编码?是英文是汉字?事实上它们都由程序进行识别。例如,表示英文字符的8位二进制编码的最高位是0,而表示汉字两个8位二进制编码的最高位是1,这一点就是程序区别存储单位里存放的是英文还是汉字的一个依据。
采用原因
容易表示
二进制数只有“0”和“1”两个基本符号,易于用两种对立的物理状态表示。例如,可用"1"表示电灯开关的“闭合”状态,用“0”表示“闭合”状态;晶体管的导通表示“1”, 截止表示“0”;电容器的充电和放电、电脉冲的有和无、脉冲极性的正与负、电位的高与低等一切有两种对立稳定状态的器件都可以表示二进制的“0”和“1”。而十进制数有1 0个基本符号( 0,1,2,..,9 ),要用1 0种状态才能表示,要用电子器件实现起来是很困难的。
运算简单
二进制数的算术运算特别简单,加法和乘法仅各有3条运算规则( 0+0=0,0+1=1,1+1=1 0和0×0=0,0×1=0,1×1=1 ),运算时不易出错。[其实计算机处理算术运算时都是加法和移位,并没有乘除法,如11B左移一位就成了110B,11B是十进制的3,而110B是6,看看是不是等于乘二,左移乘,右移就除,哈哈,好玩吧]此外,二进制数的“1”和“0”正好可与逻辑值“真”和“假”相对应,这样就为计算机进行逻辑运算提供了方便。算术运算和逻辑运算是计算机的基本运算,采用二进制可以简单方便地进行这两类运算。
十进制转换为二进制技巧
只能举例了,文字说不清的,通常将一个十进制数的整数部分和小数部分分开处理。
1、整数的数制转换;
——采用“基数除法”,具体步骤如下:
(1)将给定的十进制整数除以基数2,余数便是等值的二进制的最低位。
(2)将上一步的商再除以基数2,余数便是等值的二进制数的次低位。
(3)重复步骤2,直到最后所得的商等于0为止。各次除得的余数,便是二进制各位的数,最后一次的余数是最高位
二进制与八进制十六进制转换技巧
二进制从最低位开始每三位转换为十进制即为其对应八进制
高位不足三位,补零
同理二进制从最低位开始每四位转换为十进制即为其对应十六进制
高位不足四位,补零
如(1001100)2=(114)8=(4C)16
综上所述,本文已为讲解二进制数,相信大家对二进制数的认识越来越深入,希望本文能对各位读者有比较大的参考价值。
浏览过本文<二进制数>的人也浏览了
波特率和比特率的区别
http://baike.cntronics.com/abc/2422
什么是译码器?
http://baike.cntronics.com/abc/4848
地震勘探仪器是什么?
http://baike.cntronics.com/abc/5787