1.不同进制数之间的相互转换
来源:互联网 发布:学电脑编程的学校 编辑:程序博客网 时间:2024/05/21 14:03
我们比较常用的数制有十进制、二进制、八进制和十六进制。二进制就是逢二进一,每位都是小于二的数,其他进制类推。计算机存储数据使用的是二进制编码。
对于一个R进制的数X来说,其值可以通过下面的公式算出来:,前面是整数部分,后面是小数部分,m,n为正整数,表示第i位上的数字乘以进制数的i次方。比如二进制数(11.01)2=1×21+1×20+0×2-1+1×2-2=3.25。当R进制转换到十进制时,就这样转换。
1.十进制转换为R进制
可以将十进制数连续除以R,其每个余数就是R进制数各个数位上的数字,最后的余数是最高位。比如将68转换成二进制数,用除2取余法:
2∟68 余数
2∟34 …………………0 低位
2∟17 …………………0
2∟8 …………………1
2∟4 …………………0
2∟2 …………………0
2∟1 …………………0
0 …………………1 高位
结果就是6810 =10001002,将68转换为八进制数就用除8取余法。
2. 十进制小数转换成R进制小数
整数部分仍按上述方法转换,小数部分则乘以R,然后将结果的整数位取出作为转换最终结果的一位,再用去掉整数位的小数再乘以R,之后循环这样执行,直到小数部分为0或者达到所要求的精度为止,取出的这些整数位第一位为最高位。例如,将十进制小数0.3125转换成二进制小数:
0.3125×2 =0.625 取出0,为最高位
0.625×2 =1.25 取出1,剩下的小数为0.25
0.25×2 =0.5 取出0
0.5×2 =1.0 取出1,小数位为0,不再继续
结果就是0.312510 =0.01012 。所以将十进制数68.3125转换成二进制数就是1000100.0101。
3.二进制、八进制、十六进制之间的相互转换
每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数,如下:
(1000100)2=(1000 100)2=(104)8
(1000100)2=(1000100)2=(44)16
上面这个等式反过来当然也成立,就是八进制十六进制转换为二进制反过来计算就可以了。
计算机数据的存储单位,常用的单位有“位”,“字节”,“字”
字节:由八位二进制数据组成。字节是数据存储中最常用的基本单位。我们常说内存有2G,这里的单位就是字节。1K等于1024字节,1M等于1024K,1G等于1024M。
字:位的组合,作为一个独立的信息单位处理。取决于机器的类型、字长及使用者的要求。常用的固定字长有8位、16位、32位等。
机器字长:讨论信息单位时,有个与机器硬件指标有关的单位就是机器字长,一般指参加运算的寄存器所含有的二进制数的位数,它代表了机器的精度,如32位、64位等。就是我们常说的32位机器还是64位机器。
原文地址 http://www.jizhuomi.com/software/21.html
- 1.不同进制数之间的相互转换
- objective-c中不同数据类型之间的相互转换
- 不同数据类型的相互转换
- 集合之间的相互转换
- 毫秒之间的相互转换
- pdb之间的相互转换
- 数据类型之间的相互转换
- 服务器不同application之间的相互访问
- 不同坐标系之间的转换
- 不同进制间的相互转换的理解
- 不同格式 图片间的 相互转换!
- 任意两不同坐标系的相互转换
- 字符串之间相互转换 字符与数值之间的转换
- Visual Basic.NET不同进制数相互转换
- IStream与TStream之间的相互转换
- 全角与半角之间的相互转换
- CString,string,char*之间的相互转换
- _LIT、TBuf、HBufC之间的相互转换
- spring mvc 如何从前台表单传递集合参数并绑定集合对象。 [问题点数:40分,结帖人NewMoons]
- JavaScript——以简单的方式理解闭包
- gevent: AssertionError: Impossible to call blocking function in the event loop callback
- 概念
- 【局部特征】(二)Harris算子
- 1.不同进制数之间的相互转换
- MapReduce实现大矩阵乘法
- 适配器模式
- 英语对于软件开发重要吗?
- 应用程序安装卸载原理
- MSYQL批量执行一下.SQL
- iOS开发——keychain的使用
- C++ stl六大组件
- CI框架源码阅读笔记7 配置管理组件 Config.php