进制转换算法原理(二进制 八进制 十进制 十六进制)

 更新时间:2010年05月26日 20:42:19   作者:   我要评论
进制转换算法原理(二进制 八进制 十进制 十六进制),以前上学那会确实学过,长时间不用都忘了。
1、二进制数、八进制数、十六进制数转十进制数
有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:
110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D
110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D
110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D
2、十进制数转二进制数、八进制数、十六进制数
方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
例:见四级指导16页。
3、二进制数转换成其它数据类型
3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,
就是一个相应八进制数的表示。
010110.001100B=26.14Q
八进制转二进制反之则可。
3-2二进制转十进制:见1
3-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,
不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H
十进制转各进制
要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制
如:55转为二进制
2|55
27――1 个位
13――1 第二位
6――1 第三位
3――0 第四位
1――1 第五位
最后被除数1为第七位,即得110111
二、十进制转八进制
如:5621转为八进制
8|5621
702 ―― 5 第一位(个位)
87 ―― 6 第二位
10 ―― 7 第三位
1 ―― 2 第四位
最后得八进制数:127658
三、十进制数十六进制
如:76521转为十六进制
16|76521
4726 ――5 第一位(个位)
295 ――6 第二位
18 ――6 第三位
1 ―― 2 第四位
最后得1276516
二进制与十六进制的关系
2进制 0000 0001 0010 0011 0100 0101 0110 0111
16进制 0 1 2 3 4 5 6 7
2进制 1000 1001 1010 1011 1100 1101 1110 1111
16进制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)
可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:
3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102
右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。
二进制与八进制间的关系
二进制 000 001 010 011 100 101 110 111
八进制 0 1 2 3 4 5 6 7
二进制与八进制的关系类似于二进制与十六进制的关系,以八进制的各数为0到7,以三位二进制数来表示。如要将51028 转为二进制,5为101,1为001,0为000,2为010,将这些数的二进制合并后为1010010000102,即是二进制的值。
若要将二进制转为八进制,将二进制的位数由右向左每三位一个单位分隔,将事单位对照出八进制的值即可。

相关文章

  • 浏览器关闭使session失效的问题多种解决方式

    浏览器关闭使session失效的问题多种解决方式

    直接关闭浏览器(或者强制关闭浏览器进程、死机等),服务器无法处理用户退出网站的请求,此举将会导致session失效,下面整理了一些解决方法,感兴趣的朋友可以参考下哈
    2013-07-07
  • 算法系列15天速成 第十二天 树操作【中】

    算法系列15天速成 第十二天 树操作【中】

    先前说了树的基本操作,我们采用的是二叉链表来保存树形结构,当然二叉有二叉的困扰之处,比如我想找到当前结点的“前驱”和“后继”,那么我们就必须要遍历一下树,然后才能定位到该“节点”的“前驱”和“后继”,每次定位都是O(n),这不是我们想看到的,那么有什么办法来解决呢
    2013-11-11
  • 手把手教你用Hexo+Github搭建属于自己的博客(详细图文)

    手把手教你用Hexo+Github搭建属于自己的博客(详细图文)

    越来越多的朋友选择自己架设自己的博客,以来方便个性样式二来也能带来不少收入,大部分朋友都会选择wordpress搭建个人博客,这里为大家分享使用Hexo+Github搭建开发者博客的方法,需要的朋友可以参考下
    2017-10-10
  • Git的简单理解及基础操作命令详解

    Git的简单理解及基础操作命令详解

    Git是一款免费、开源的、用Linux内核开发的分布式版本控制系统。下面通过本文给大家分享Git的简单理解及基础操作命令,需要的朋友参考下吧
    2017-10-10
  • 使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果

    使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果

    我的建议是不要再使用上面的方法去获取客户端IP.即是不要再理会代理情况.
    2009-11-11
  • 如何正确使用开源项目?

    如何正确使用开源项目?

    开源项目广受大家喜爱,其实我们在使用开源项目的过程中有不少注意的事项,今天就来给大家介绍下如何正确的使用开源项目。需要的朋友可以参考一下
    2018-09-09
  • IIS 301重定向与程序代码实现301重定向的差别

    IIS 301重定向与程序代码实现301重定向的差别

    过IIS做301重定向确可以实现传递网站的权重,还不会导致流量丢失。
    2010-11-11
  • Git的使用规范流程总结

    Git的使用规范流程总结

    大家都明白在团队开发中,遵循一个合理、清晰的Git使用流程,是非常重要的。否则,每个人都提交一堆杂乱无章的commit,项目很快就会变得难以协调和维护。所以这篇文章给大家分享了Git的使用规范流程,有需要的可以参考借鉴。
    2016-09-09
  • php和asp利用Shell.Application来执行程序的代码

    php和asp利用Shell.Application来执行程序的代码

    关于用Shell.Application来执行程序,在海阳顶端asp木马里已有示例。用的是ShellExecute 这个方法。
    2008-12-12
  • JavaScript/VBScript脚本程序调试(Wscript篇)

    JavaScript/VBScript脚本程序调试(Wscript篇)

    在日常的操作系统维护过程中,有时我们也会写一些小的脚本程序来简化系统管理工作,例如调用一些WMI函数来自动安装卸载程序之类的。
    2009-09-09

最新评论