本文共 2244 字,大约阅读时间需要 7 分钟。
引言:计算机的基本功能是对数据进行存储、处理(运算)、输出,这些数据主要有数值、字符、图形、图像、声音等。在计算机系统中,这些数据都要被转化成二进制(0或1)的形式存储,也就是需要进行二进制编码处理。
1、什么是编码?
编码是从一种形式或格式转换为另一种形式的过程也称为计算机编程语言的代码简称编码。用预先规定的方法将文字、数字或其它对象编成数码,或将信息、数据转换成规定的电脉冲信号。与之相对应的是解码,解码是一种用特定方法,把还原成它所代表的内容或将信号、光信号、等转换成它所代表的信息、数据等的过程。(百度百科)
其实编码通常来说就是用数字、字母等按规定的方法和位数来代表特定的信息,解码就是将人们熟悉的信息通过特定的规则和位数转化为计算机能识别的数据,两者主要是为了人和计算机之间进行信息交流和处理。
2、计算机为什么用二进制编码?
计算机除了使用二进制数(Binary)外,为了书写和表示方便,还引入八进制数(Octal)和十六进制数(Hexadecimal),而人们在生活中通常使用十进制数(Deciaml),之所以使用十进制数是因为人有十个手指头,当然有人会问为什么不把脚指头算上,当然肯定是有人算上了的,比如神秘的玛雅人就是采用二十进制。
3、不同计数制之间的相互转换
(110101.01)B = 1x2^5 + 1x2^4 + 1x2^2 + 1x2^0 + 1x2^-2 = (53.25)D
(456.4)O = 4x8^2 +5x8^1 + 6x8^0 +4x8^-1 = (302.5)D
(A11)H = 10x16^2 + 1x16^1 + 1x16^0 = (2577)D
将十进制数转换为X进制数时,可以将次数分成整数和小数两部分分别转换,然后拼接即可。
整数部分:采用除以X取余法,将十进制数不断除以X取余数,直到商为0,然后反向排列余数;
小数部分:采用除以x取整,将十进制小数部分不断除以x取整数,直到小数部分为0或达到所求的精度为止(小数部分可能永远不会的到0),然后正向排列得到转换后的小数部分。
一位八进制数相当于3位二进制数,一位十六进制数相当于4位二进制数,所以转换方法比较简单。
二进制数转换为八进制数时,以对应二进制数小数点为中心向左右两边分组,每3位为一组,不足补0即可。
同样道理,二进制数转换为十六进制数时,以对应二进制数小数点为中心向左右两边分组,每4位为一组,不足补0即可。
将二进制数1101101110.110101 转换为八进制数
(001 101 101 110.110 101)B = (1556.65)O
将二进制数1101101110.110101 转换为十六进制数
(0011 0110 1110.1101 0100)B = (36E.D4)H
将八进制数转换为二进制数时,只需要将该八进制数1位数转化为3位就行
(1556.65)O = (001 101 101 110.110 101)B
将十六进制数转换为二进制数时,只需要将该十六进制数1位数转化为4位就行
(36E.D4)H = (0011 0110 1110.1101 0100)B
4、二进制数的算术运算
0 + 0 = 0
0 + 1 = 1 + 0 = 1
1 + 1 = 0 (被加数和加数为1,结果本位为1,按逢二进一向高位进1)
被加数 1 1 0 1 13
加数 1 1 1 0 14
进位 +) 1 1 0 0
结果 1 1 0 1 1 27
0 - 0 = 1 - 1 =0
1 - 0 = 1
0 - 1 = 1(被减数为0,减数为1,结果本位为1,向高位借位)
被减数 1 1 0 1 1 27
减数 1 1 1 0 14
借位 -) 1 1 0 0
结果 0 1 1 0 1 13
0 x 0 = 0
0 x 1 = 1 x 0 = 0
1 x 1 = 1
被乘数 1 1 0 1 13
乘数 x) 1 0 1 0 10
部分积 0 0 0 0
1 1 0 1
0 0 0 0
1 1 0 1
乘积 1 0 0 0 0 0 1 0 130
0 / 0(无意义)
0 / 1 = 0
1 / 0(无意义)
1 / 1= 1
5、二进制数的逻辑运算
A | B | A^B | A | B | ~A | ~B |
0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 0 | 0 |
欢迎搜索个人微信公众号“宅男一号”加入宅基地,给你带来更多IT内容分享!
转载地址:http://nriii.baihongyu.com/