复习下二进制的姿势。。。。
1、二进制的表示:0、1。由于只有两个数码,计算机中就可以代表元器件电流的开(1)关(0),达到记录处理数据的目的。逢二进一规则以及与十进制的关系:
2、二进制的运算:
2.1基本运算
法则是“逢二进一”、“借一当二”
2.1.1加法运算(摘自网络,为了自己看着方便)
加法运算和十进制差不多,就是逢二就进1位到高位,以此类推。。。。
减法运算就是从高位借1,但是这个1其实是2个低位的1,就是借1当2的含义。。。。
乘法运算比较简单,与十进制乘法法则一样,比十进制更简单。。。。(只有0、1)
2.2逻辑运算
1.“与”运算:“与”运算中,只要两个参加“与”运算的数的对应位有一个为0,运算结果就为0;仅当两数的对应位均为1时结果才为1。
2.“或”运算:“或”运算中,只要两个参加“或”运算数的对应位中有一个为1,运算结果就为1,仅当两数的对应位均为0时结果才为0。
3.“非”运算:“非”运算就是逐位求反的运算,其运算法则为:“0”的反值为“1”,“1”的反值为“0”,也就是“0”与“1”互为反。注意:“非运算”只是针对一个二进制数进行的, 这与前面的“与”和“或”运算不一样。如“101110101”进行“非”运算后就得到“010001010”(可简写为“10001010”)。
4.“异或”运算:当两个参加“异或”运算的二进制数对应位相同时运算结果为0,不同时运算结果为1。两个二进制的异或结果为(两数差的绝对值)。
3.二进制数的正负:
在计算机内,有符号数有3种表示法:原码、反码和补码。(百科)
原码:在数值前直接加一符号位的表示法。
反码:
正数:正数的反码与原码相同。
负数:负数的反码,符号位为“1”,数值部分按位取反。
补码:
正数:正数的补码和原码相同。
负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。
十进制中的数有正有负,那二进制如何表示负数呢,计算机用最高位上的数字表示正负,其中0表示正数,1表示负数。
假如计算十进制中1-2,显然得到-1,那利用前面讲过的二进制(原码)计算(假如字长是8Bits),就是00000001+10000010,得到的结果就是10000011(十进制的-3),显然不对。取反码试试,00000001+11111101(反码),11111110(反码),将反码正过来,就得到10000001(原码),-1,正确。