第一章、
进制与码制:
一、常用的几种数制
1.二进制
应用领域非常广的一种数制,在二进制数中,每一位数字只能从0和1取,之所以它的基数是2。其中低位与高位之间的运算关系遵守“逢二进一”(左边为高位,右边为低位),故称为二进制。判断一个数是否为二进制数(1.前缀为0b或者b开头,例如(0b1000110,b1000101)为二进制。2.看数值,数字只能是0或1例如(1001101,10101001),都是二进制)
2.八进制
作用领域不大广泛,在八进制数中,每一位数字只能从0到8之间取,之所以它的基数是8。其中低位与高位之间的运算关系遵守“逢八进一”,故称为八进制。判断一个数是否为八进制数(1.前缀为O,2.看数值,每一位数都在0到8之间。)
3.十进制
应用领域在日常生活中最为广泛与常见,在十进制数中,每一位数字只能从0到9之间取,之所以它的基数是10,其中低位与高位之间的运算关系遵守“逢十进一”,故称为十进制。判断一个数是否为十进制(1.每一位数字是否都在0到9之间。)
5.十六进制
十六进制数的每一位有16个不同的数码,分别用0到9,A(10)、B(11)、C(12)、D(13)、E(14)、F(15)表示。并且计数的基数是16,其中低位与高位之间的运算关系遵守“逢十六进一”,故称为十六进制。判断一个数是否为十六进制数(1.带有A、B、C...等字母的。2.下角标为16或者H的同样也是。)
二、常用进制之间的转换
1.二进制转十进制:
注意(任何进制计数,高位都是左边,而右边则为低位,在高位前面补零,那么对于整个数值来说没有变化,但千万不能在低位后面补零。)
二进制转十进制规则:
以2为底,从低位向高位每一位进行2幂运算,然后和与之对应的位进行乘再求和。
例如:
0 1 0 1 1 0 1 1(一个八位数的二进制)
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 (以2为底的幂运算)
0*2^7 + 1* 2^6 + 0* 2^5 + 1* 2^4 + 1* 2^3 + 0* 2^2 + 1* 2^1 + 1* 2^0 =91
十进制转二进制规则:
对十进制数以2为除数,然后求余的一个过程,(我们这里只讨论整数过程.....)
例如:把十进制数57化成等价的二进制数。
57 / 2= 28 .......1
28 / 2= 14.......0
14 / 2= 7.......0
7/ 2= 3.......1
3 / 2= 1.......1
1 / 2= 0.......1
求出来的余数,从下往上取,那么十进制数57化为二进制数,二进制数就等于“111001”
二进制转八进制规则:
把二进制从低位向高位进行分化,3位二进制数为一个单位的划分,也就是说3位二进制数等价于1位八进制数。
例如:
(二进制数) 010 001 101
421 421 421
(八进制) 2 1 5
注(当二进制数最高位不够划分为3位时就在前面补零)
八进制转二进制规则:
与二进制转八进制同理,我们可以通过逆向思维,那就是1位八进制数对应3为二进制数。
例如:
(八进制) 2 1 5
421 421 421
(二进制) 010 001 101 最高位的0可以省略不写。
二进制转十六进制规则:
4位二进制数看作一个整体,它的进位输出正好是“逢十六进一”,所以和二转八类型有些相似。也可以用 64 32 16 8 4 2 1 码来做。
例如:
(二进制) 0101 1110
8421 8421
(八进制) 5 E
十六进制转二进制:
只需要把1为十六进制数转化为4位二进制数即可。
例如:
(十六进制) 8 F A
8421 8421 8421
(二进制) 1000 1111 0011
注:其他进制相互转化,具体过程自己自行推演。
三、原码、反码、补码
原码:
符号位加上真值得绝对值。
例如:
+1(原码)=0000 0001
-1(原码)=0000 0001
反码:
顾名思义,就是反着来。注(正数的原码,反码,补码都是一样的。而负数的反码就是符号位不变,其他位取在原码基础上取反,即1变0,0变1)
例如:
原码 反码
+1 0000 0001 0000 0001
-1 1000 0001 1111 1110
+0 0000 0000 0000 0000
-0 1000 0000 1111 1111
补码:
正数的原码,反码,补码就是其本身。
负数的补码是其原码的基础上,符号不变,其余各位取反,最后+1(即在反码的基础上+1)
例如:
原码 反码 补码
+1 0000 0001 0000 0001 0000 0001
-1 1000 0001 1111 1110 1111 1111
+0 0000 0000 0000 0000 0000 0000
-0 1000 0000 1111 1111 10000 0000
网友评论