ن
二进制转十进制,十进制转二进制的算法介绍
二进制数转换成十进制数,只需采用“按权数展开的方法”
二进制转十进制
从最后一位开始算,依次列为第0位、第1位、第2...位第n位的数(这些数都是0或者1)乘以2n次方得到的结果相加就是答案(十进制转二进制题目这个是没有小数的情况
例如:    01101011.  转十进制:
0位(指这个数的个位:120次方=1
十位121次方=2
百位022次方=0
依次类推123次方=8
024次方=0
125次方=32
126次方=64
027次方=0
然后:1208032640107
二进制01101011=十进制107
有小数的情况:以小数点为中心分开,左边整数位算法和上面的一样,小数点右边仅仅是将那个2n次方,的n前面加个负号。上面说了,第0位是个位数,所以小数点后第一个数就说它是-1位,这样好理解点。
例如: (11011.101)B    (1×24+1×23+0×22+1×21+1×20+1×2-1+0×2-2 +1×2-3)D  (16+8+2+1+0.5+0.125)D    =(27.625)D    (红字就是小数点后四位展开形式)
十进制转二进制: 就是各种除以2,一直除到结果为1
2辗转相除至结果为1
将余数和最后的1下向上倒序写 就是结果
例如:302转化成二进制 这是整数情况
例一:302/2 = 151 0        例二100/2=50 0
      151/2 = 75 1              50/2=25    0
      75/2 = 37 1                25/2=12    1
      37/2 = 18 1                12/2=6    0
      18/2 = 9 0                  6/2=3      0
      9/2 = 4 1                  3/2=1      1
      4/2 = 2 0                  1/2=0      1
      2/2 = 1 0
故二进制为  例一=100101110      例二=1100100
有小数时:整数部分换算同上。小数部分:乘以2取整,直到满足所需要的精度为止(题目有可能要求取到小数点后第几位),所得整数自左向右排列(这个就是从上往下写的意思)。
例如:(0.345)D= (  0.01011  )B ,精确到小数点后第5位。
  0.345×2=0.690  整数部分为0    这个数是小数点后第一位
  0.690×2=0.380  整数部分为1    1
  0.380×2=0.760  整数部分为0    0
  0.760×2=0.520  整数部分为1    0
  0.520×2=0.040  整数部分为1    1
8、十六进制转换成十进制
与二进制转换成十进制类似,采用“按权展开”的方法。
八进制转换成十进制,权数是8
如:(146.73)O = (1×82+4×81+6×80+7×8-1 +3×8-2)D = (102.921875)D
(十六进制转十进制,权数是 16
(1AF.E)H=(1×162+10×161+15×160+14 ×16-1)D =(431.875)D
(上面的字母AF是十六进制里面的 A10  F15  E14
十进制转换成八、十六进制:
方法:
整数部分:除以R取余数,直到商为0止,余数从下到上排列。(R代表你要转换成哪个进制的那个数,如果转换成八进制,那么R就是8
小数部分:乘以R取整,直到满足所需要的精度止,所得整数自左向右排列。
小结:十进制转换成其他进制,就是各种除!!转成几进制就除以几。
    (注意整数部分结果和小数部分结果的书写顺序)
      其他进制转换成十进制,就是各种按权数相乘,转换成几进制,权数就是几。再相加。(注意小数点隔开,第0位是个位)
接下来是二、八互转:
二转八方法:
对于整数部分,从右向左毎三位二进制数位为一组,高位不足三位时左补0,然后将毎组对应的八进制数写出,即得整数部分的八进制码。
对于小数部分,从左向右每三位二进制数位为一组,不足三位的右补0,然后将毎组对应的八进制数写出,即得小数部分的八进制码。
例:
10100011100111B=(010 100 011 100 111)B=(24347)O
                        看,红的这个0就是为了凑够三位加上去的
(10101.1010011)B=(010 101.101 001 100)B=(25.514)O
                  这里也是      这里两个0也是
反正就是,从小数点向两边,三位一组,不够的在两边加0凑。特别注意:转八进制是  三位一组,涉及到八转二。
八转二方法:
对于整数部分,写出毎位数对应的二进制码(八进制毎位转换成三位二进制,十六进制为四位二进制)即可。
对于小数部分,与整数部分的操作一样。
7241.56O=(111 010 100 001.101 110B
这个好像有个对照表,其实原理也简单
比如上面八进制数里面那个7,对应的三位二进制是111,这个可以算出来
111 = 1×22+1×21+1×20=7    010 = 0×22+1×21+0×20 = 2
这个相当于是把二进制的111转换成十进制的7,如果没记住换算表,可以这样算。
二转十六
对于整数部分,从右向左毎四位二进制数位为一组,高位不足四位时左补0,然后将毎组对应的十六进制数写出,即得整数部分的十六进制码。
对于小数部分,从左向右每四位二进制数位为一组,不足四位的右补0,然后将毎组对应的十六进制数写出,即得小数部分的十六进制码。
例:
10100011100111B=( 0010  1000 1110 0111)B=(28E7)H
(10101.1010011)B=(0001 0101.1010 0110 )B=(15.A6)H
  1010 = 1×23+0×22+1×21+0×20 = 10 = A
除了是四位二进制一组外,计算和八进制转二进制一样,哦,特别要注意十六进制的书写,就是1010以上的数是用A-F这留个字母表示的

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。