Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208386
  • 博文数量: 57
  • 博客积分: 1694
  • 博客等级: 上尉
  • 技术积分: 481
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-26 16:26
文章分类

全部博文(57)

文章存档

2011年(2)

2010年(37)

2009年(18)

我的朋友

分类: LINUX

2010-03-10 11:05:01

非十进制转换为十进制:

1.数值按权展开:

规律如下(比较简单):

136.1=1*10E2+3*10E1+6*10E0+1*10E-1

101.01B=1*2E2+0*2E1+1*2E0+0*2E-1 +1*2E-2

2cH=2*16E1+c*16E0=44

//B表示2进制,H表示16进制

 //E科学记数 即次方后接次方数 16E1 就是 16的1次方

 

十进制转换为二进制

1除二取余(整数部分),乘二取整(小数部分)

除二取余:把十进制整数除以2得到商和余数,在将所得到的商除以2,又得到新的商和余数,这样不断的用二去除商,直到商为0为止.

每次除的的余数便是相应的二进制数码.最先得到的是最的有效位,最后得到的是最高有效位.

如:11的二进制

11/2=5--1

5/2=2--1

2/2=1--0

1/2=0--1

//是整除,即二进制位 1011(从后面开始往上读,高位低位的问题)

乘二取整:

对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.

如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位

如:0.25的二进制

0.25*2=0.5

0.5*2=1

即0.25的二进制为 0.01 ( 第一次所得到为最高位,最后一次得到为最低位)

十进制转八进制和十六进制

方法和转二进制相同,也可以用这种方法转换到其他进制.

如 90.875 转换到16进制

90/16=5--10

5/16=0--5

整数部分就是 5A(10进制的10 对16进制的A)

0.875*16=14

小数部分就是 E(10进制的14 对16进制的E)

其他进制间的互相转换

用二进制数编码,存在这样一个规律:n位二进制数最多能表示2的n次方种状态.因此,诺用一组二进制数表示具有十六种状态的十六进制数,至少要4位(16=2的4次方).同样八位要 3位.

如:将111101010011.10111B转换为16进制

从小数点开始,分别向左右4位一组划分,不足4位的补0,然后将每组4位的二进制数以1位的十六进制数取代即可.

1111 0101 0011 . 1011 1000

2 A F . C 5 (二进制对应的16进制数)

其他进制间的转换一样的方法..自己把握要点.

上面列举的方法是我觉得比较简单的方法,关于其他一些方法请自行参考相关书籍.如有错误请指正.

阅读(1357) | 评论(0) | 转发(0) |
0

上一篇:BM算法

下一篇:lighttpd 配置文件

给主人留下些什么吧!~~