分享

各进制转换方法

 空中流霜 2010-09-15

各进制转换方法

 一、正数

  

  在高速发展的现代社会,计算机浩浩荡荡地成为了人们生活中不可缺少的一部分,帮助人们解决通信,联络,互动等各方面的问题。今天我就给大家讲讲与计算机有关的“进制转换”问题。

  我们以(25.625)(十)为例讲解一下进制之间的转化问题

  说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看

  1. ----->

  (25.625)(十)

  整数部分:

  25/2=12......1

  12/2=6 ......0

  6/2=3 ......0

  3/2=1 ......1

  1/2=0 ......1

  然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式

  小数部分:

  0.625*2=1.25

  0.25 *2=0.5

  0.5 *2=1.0

  然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式

  所以:(25.625)(十)=11001.101)(二)

  十进制转成二进制是这样:

  把这个十进制数做二的整除运算,并将所得到的余数倒过来.

  例如将十进制的10转为二进制是这样:

  (1) 10/2,50

  (2) 5/2,21

  (3)2/2,10

  (4)12,商01

  (5)将所得的余数侄倒过来,就是1010,所以十进制的10转化为二进制就是1010

  2. ---->

  

  (11001.101)(二)

  整数部分: 下面的出现的2x)表示的是2x次方的意思

  1*24+1*23+0*22+0*21+1*20=25

  小数部分:

  1*2-1+0*2-2+1*2-3=0.625

  所以:(11001.101)(二)=25.625)(十)

  二进制转化为十进制是这样的:

  这里可以用8421码的方法.这个方法是将你所要转化的二进制从右向左数,从0开始数(这个数我们叫N),在位数是1的地方停下,并将1乘以2N次方,最后将这些1乘以2N次方相加,就是这个二进数的十进制了.

  还是举个例子吧:

  求110101的十进制数.从右向左开始了

  (1) 1乘以20次方,等于1

  (2) 1乘以22次方,等于4

  (3) 1乘以24次方,等于16

  (4) 1乘以25次方,等于32

  (5) 将这些结果相加:14163253

  3. ---->

  (25.625)(十)

  整数部分:

  25/8=3......1

  3/8 =0......3

  然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式

  小数部分:

  0.625*8=5

  然后我们将整数部分按从上往下的顺序书写就是:5,那么这个0.5就是十进制0.625的八进制形式

  所以:(25.625)(十)=31.5)(八)

  4. ---->

  (31.5)(八)

  整数部分:

  3*81+1*80=25

  小数部分:

  5*8-1=0.625

  所以(31.5)(八)=25.625)(十)

  5. ----> 十六

  (25.625)(十)

  整数部分:

  25/16=1......9

  1/16 =0......1

  然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式

  小数部分:

  0.625*16=10(即十六进制的Aa

  然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式

  所以:(25.625)(十)=19.A)(十六)

  6. 十六---->

  (19.A)(十六)

  整数部分:

  1*161+9*160=25

  小数部分:

  10*16-1=0.625

  所以(19.A)(十六)=25.625)(十)

  如何将带小数的二进制与八进制、十六进制数之间的转化问题

  我们以(11001.101)(二)为例讲解一下进制之间的转化问题

  说明:小数部份的转化计算机二级是不考的,有兴趣的人可以看一看

  1. ---->

  (11001.101)(二)

  整数部分: 从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:

  001=1

  011=3

  然后我们将结果按从下往上的顺序书写就是:31,那么这个31就是二进制11001的八进制形式

  小数部分: 从前往后每三位一组,缺位处用0填补,然后按十进制方法进行转化, 则有:

  101=5

  然后我们将结果部分按从上往下的顺序书写就是:5,那么这个5就是二进制0.101的八进制形式

  所以:(11001.101)(二)=31.5)(八)

  2. ---->

  (31.5)(八)

  整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:

  1---->1---->001

  3---->11

  然后我们将结果按从下往上的顺序书写就是:11001,那么这个11001就是八进制31的二进制形式

  说明,关于十进制的转化方式我这里就不再说了,上一篇文章我已经讲解了!

  小数部分:从前往后每一位按十进制转化方式转化为三位二进制数,缺位处用0补充 则有:

  5---->101

  然后我们将结果按从下往上的顺序书写就是:101,那么这个101就是八进制5的二进制形式

  所以:(31.5)(八)=11001.101)(二)

  3. 十六 ---->

  (19.A)(十六)

  整数部分:从后往前每位按十进制转换成四位二进制数,缺位处用0补充 则有:

  9---->1001

  1---->0001(相当于1

  则结果为00011001或者11001

  小数部分:从前往后每位按十进制转换成四位二进制数,缺位处用0补充 则有:

  A(10)---->1010

  所以:(19.A)(十六)=11001.1010)(二)=11001.101)(二)

  4. ----> 十六

  (11001.101)(二)

  整数部分:从后往前每四位按十进制转化方式转化为一位数,缺位处用0补充 则有:

  1001---->9

  0001---->1

  则结果为19

  小数部分:从前往后每四位按十进制转化方式转化为一位数,缺位处用0补充 则有:

  1010---->10---->A

  则结果为A

  所以:(11001.101)(二)=19.A)(十六)

 二、负数

  负数的进制转换稍微有些不同。

  先把负数写为其补码形式(在此不议),然后再根据二进制转换其它进制的方法进行。

  例:要求把-9转换为八进制形式。则有:

  -9的补码为11110111。然后三位一划

  111---->7

  110---->6

  011---->3

  然后我们将结果按从下往上的顺序书写就是:367,那么367就是十进制数-9的八进制形式。

  补充:

  最近有些朋友提了这样的问题“0.8的十六进制是多少?”

  我想在我的空间里已经有了详细的讲解,为什么他还要问这样的问题那

  于是我就动手算了一下,发现0.80.60.2... ...一些数字在进制之间的转化

  过程中确实存在麻烦。

  就比如“0.8的十六进制”吧!

  无论你怎么乘以16,它的余数总也乘不尽,总是余8

  这可怎么办啊,我也没辙了

  第二天,我请教了我的老师才知道,原来这么简单啊!

  具体方法如下:

  0.8*16=12.8

  0.8*16=12.8

  .

  .

  .

  .

  .

  取每一个结果的整数部分为12既十六进制的C

  如果题中要求精确到小数点后3位那结果就是0.CCC

  如果题中要求精确到小数点后4位那结果就是0.CCCC

  现在OK

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多