人类可以轻松读懂十进制数并对其进行计算,但读起二进制数来却很不自然。计算机不能理解十进制数,却能“读懂”二进制数,并对其进行运算。逻辑加是指或运算,如果多个条件中至少有一个为真,那么逻辑加的结果就是真;如果所有条件都不满足,那么逻辑加的结果就是假。有人说:加法计算是计算机要做的唯一工作。因为有了加法器以后,就能做减法、乘法、除法等。发现的任何事物的前提都是找到了规律,然后通过规律来进行总结和利用。
二进制(binary)在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示。数字电子电路中,逻辑门的实现直接应用了二进制,因此现代的计算机和依赖计算机的设备里都用到二进制。每个数字称为一个比特。
二进制数的表示方法:
二进制数是由0和1组成的数字,它们可以表示计算机中的所有数据。二进制数的每一位都是2的幂次方,例如1010表示1*2^3+0*2^2+1*2^1+0*2^0=8+0+2+0=10。
采用二进制的原因:
1、二进位计数制仅用两个数码。0和1,所以,任何具有二个不同稳定状态的元件都可用来表示数的某一位。而在实际上具有两种明显稳定状态的元件很多。
2、二进位计数制的四则运算规则十分简单。而且四则运算最后都可归结为加法运算和移位,这样,电子计算机中的运算器线路也变得十分简单了。不仅如此,线路简化了,速度也就可以提高。这也是十进位计数制所不能相比的。
3、在电子计算机中采用二进制表示数可以节省设备。可以从理论上证明,用三进位制最省设备,其次就是二进位制。但由于二进位制有包括三进位制在内的其他进位制所没有的优点,所以大多数电子计算机还是采用二进制。
4、二进制的符号“1”和“0”恰好与逻辑运算中的“对”(true)与“错”(false)对应,便于计算机进行逻辑运算。
二进制数的加法计算方法:
二进制数的加法计算方法与十进制数的加法计算方法相同,只是进位的规则不同。例如,(66)10=((0*1010+110)*1010+110)2=(110*1010+110)2=(111100+110)2=(1000010)2。
二进制算术加法,就是平时普通加减法,与十进制加法是类似的,只是规则是“逢二进一”。
如十进制的3+5=8,用二进制表示就是11+101=1000。需要时向高位进位,用1101和0100这两个来讲解,逻辑与即1101&0100,就是位相的概念,可以通俗的理解为,一个电路有两个串联的开关,只有同时关闭两个开关电路才通,打开任意一个开关电路都不通,所以那两个数逻辑与的结果是0100。逻辑或即1101|0100。
可能还是有一些不懂,我们再来看个例子:11011+1100=?只要记住“逢二进一”,就很清楚结果是100111.至于这个式子代表的是十进制的多少,我们当然有办法解读出来,但是计算机是不关心的,既然这样,我们也无须解读,就按二进制来理解就可以了。
二进制的加法的位运算:
运算符号(java)描述
位与 | & | 都为1,结果为1,否则为0。 |
位或 | | | 有一个为1或两个位都为1,则结果为1,否则为0。换句话说,只有两个都为0,则结果为0,其它为1。 |
异或 | ^ | 两个位相同,其为0。两个位不同,其为1。 |
取反 | ~ | 0变为1,1变为0。 |
左移 | << | 将二进制左移指定位数,右侧补0 |
右移 | >> | 将二进制由移指定位数,右侧超出部分截取丢弃。如a>>b相当于a/2^b。 |