呵呵~小数也是一样的~!比如 11101.1011
后面的小数后面的数的结果就是:1x2(-1)+0x2(-2)+1x2(-3)+1x2(-4)
结果等于0.5+0.125+0.0625=0.6875
反过来也一样:
比如随便写个数字:0.788
你就把这个数首先减去0.5,如果能减就把小数第一位定个1,如果不能减就定个0
同样剩下的数字减去0.5的一半,也就是0.25一样的道理,能减就为1不能减就为0
一直减到没有数,也就是0为址
整数和小数分别转换。
整数除以2,商继续除以2,得到0为止,将余数逆序排列。
22 / 2 11 余0
11/2 5 余 1
5 /2 2 余 1
2 /2 1 余 0
1 /2 0 余 1
所以22的二进制是10110
就是说你所要保留几位小数
二进制只需用两种状态表示数字,容易实现计算机是由电子元、器件构成的,二进制在电气、电子元器件中最易实现。它只有两个数字,用两种稳定的物理状态即可表达,而且稳定可靠。比如磁化与未磁化,晶体管的载止与导通(表现为电平的高与低)等。而若采用十进制,则需用十种稳定的物理状态分别表示十个数字,不易找到具有这种性能的元器件。即使有,其运算与控制的实现也极复杂。
二进制的运算规则简单加法是最基本的运算。乘法是连加,减法是加法的逆运算(利用补码原理,还可以转化为加法运算,类似钟表拨针时的计算),除法是乘法的逆运算。其余任何复杂的数值计算也都可以分解为基本算术运算复合进行。为提高运算效率,在计算机中除采用加法器外,也直接使用乘法器。
众所周知,十进制的加法和乘法运算规则的口诀各有100条,根据交换率去掉重复项,也各有55条。用计算机的电路实现这么多运算规则是很复杂的。
相比之下,二进制的算术运算规则非常简单,加法、乘法各仅四条:
0+0=00×0=0
0+1=10×1=0
1+0=11×0=0
1+1=101×1=1
根据交换率去掉重复项,实际各仅3条。用计算机的脉冲数字电路是很容易实现的。
3.用二进制容易实现逻辑运算计算机不仅需要算术功能,还应具备逻辑运算功能,二进制的0,1分别
可用来表示假(false)和真(true),用布尔代数的运算法则很容易实现逻辑运算。
4.二进制的弱点可以克服二进制主要的弱点是表示同样大小的数值时,其位数比十进制或其他数制多得多,难写难记,因而在日常生活和工作中是不便使用的。但这个弱点对计算机而言,并不构成困难。在计算机中每个存储记忆元件(比如由晶体管组成的触发器)可以代表一位数字,“记忆”是它们本身的属性,不存在“记不住”或“忘记”的问题。至于位数多,只要多排列一些记忆元件就解决了,鉴于集成电路芯片上元件的集成度极高,在体积上不存在问题。对于电子元、器件,0和1两种状态的转换速度极快,因而运算速度是很高的。
二进制运算
1.算术运算前面已经讲过,二进制算术规则非常简单,现举二例加以说明。
即1110B+1011B=11001B
即1110B×1011B=10011010B
2.逻辑运算在计算机中还经常用二进制数进行逻辑运算。逻辑运算在二进制数位之间进行,不存在进位或借位。在逻辑运算中,二进制数中的“1”表示“真”,“0”表示“假”。
(1)或(OR)运算
或运算又称逻辑加,运算符为“∨”或者“+”。运算规则是:
0∨0=0
0∨1=1
1∨0=1
1∨1=1
也就是说,当参加运算的逻辑值只要有一个1,运算结果即为1,否则为0。
(2)与(AND)运算
与运算又称逻辑乘,运算符为“∧”或“×”。运算规则是:
0∧0=0
0∧1=0
1∧0=0
1∧1=1
也就是说,当参加运算的逻辑值均为1时,运算结果才为1,否则为0。
(3)非(NOT)运算
非运算即对每个二进制位的逻辑值取反,运算符为在二进制数字上方加
一横线。运算规则是:
0=1
1=0
(4)异或(XOR)运算
异或运算即按位相加(不进位),运算符常记为,运算规则是:
00=0
01=1
10=1
11=0
可以看出,如果参加运算的逻辑值只要有一个为1,运算结果即为1,否则为0。
下面举例说明二进制数的逻辑运算。
设X=10110101BY=11010110B
X∨Y=11110111B
X∧Y=10010100B
X==D1001010Y00101001BB
XY=011000i11B
十进制数与二进制数的转换
我们在日常生活和工作中使用十进制数,在计算机中使用二进制数,因此在计算机输入时要将十进制数转换为二进制数,在计算机输出时要将二进制数转换为十进制数。这种转换过程,是由计算机自动完成的。为简便起见,这里我们只介绍整数间转换。
1 .十进制数转换为二进制数整数的转换,通常采用除2取余法。即将十进制数依次除以2,再把每次得到的余数从后向前依次排列就得到相应的二进制数。例如:实际上,直接将十进制数用2的n次幂展开更为方便。例如:
75=64+8+2+1
=26×1+26×0×24×0+23×1+22×0+21×1+20×1
=1001011B
2.二进制数转换为十进制数将二进制数每一位的数值用十进制表达并相加即得到相应的十进制数。
例如:
11010010B=27×1+26×1+25×0+24×1+23×0+22×0+21×1+20×1
=128+64+16+2
=210