进制转换与数字存储实例

  说明:本实例基于C语言编写

一、进制转换

  1)、十进制转其它进制

  •   DEC转BIN:N=25

  (25)2=11001

  

  •   DEC转OCT:N=125

  (125)8=175

  

  •   DEC转HEX:N=2581

  (2581)16=A15

  

  2)、其它进制转十进制

  •   BIN转DEC:(1100101)2

  (1100101)2=1x26+1x25+0x24+0x23+1x22+0x21+1x20=64+32+0+0+4+0+1=101

  •   OCT转DEC:(2612)8

  (2612)8=2x83+6x82+1x81+2x80=1024+384+8+2=1418

  •   HEX转DEC:(A46C)16

  (A46C)16=10x163+4x162+6x161+12x160=40960+1024+96+12=42092

  3)、二进制与八进制互转

  •   BIN转OCT:(011100100110)2

  (011100100110)2=(3446)8

  

  •   OCT转BIN:(7514)8

  (7514)8=(?111101001100?)2

  

  4)、二进制与十六进制互转

  •   BIN转HEX:(0101001011)2

  (0101001011)2=(14B)16

  

  •   HEX转BIN:(B287)16

  (B287)16=(?1011001010000111?)2

  

  5)、八进制与十六进制互转

  OCT转HEX:OCT转BIN转HEX

  HEX转OCT:HEX转BIN转OCT

二、数字存储

  1)、无符号整数原码存储:N=126

  

  

  2)、有符号正整数原码存储:N=126

  参照上一个例子

  3)、有符号负整数补码存储:-106

  (106)2=00000000000000000000000001101010

  如果用4字节(32位来存储)的话,(106)=11111111111111111111111110010110

  

  

  将补码存储的有符号负整数还原为十进制数

  •   对补码表示的数进行补码运算得到这个十进制数的绝对值的二进制表示:01101010
  • 将该二进制数转换为十进制并添加符号(看最高位)即可:-10

  补码运算

  

  4)、单精度浮点数存储:余127码

  N = - 12.8(精度2位)

  •   符号位S=1(负数)
  •   转化为二进制表示:(12.8)2=(1100.1)2,转换为二进制的小数部分精度为1
  •   规范化:(1.1001)x23
  •   指数E=3+127=130,二进制为:(130)2=(10000010)2
  •   尾数M=(10010000000000000000000)2
  •   结果:1 10000010 10010000000000000000000

  

  5)、双精度浮点数存储:余1023码

  操作方法和单精度浮点数的存储一直,不同的是,双精度浮点数的指数E用11位存储,尾数用52位存储。

时间: 2024-08-07 17:00:18

进制转换与数字存储实例的相关文章

sql 进制转换,支持93内的进制相互转换

功能:实现在SQL内进制的互相转换,支持从2 - 93进制内的转换,若需要支持其他字符,可以自定义@ym变量实现扩充 1 -- ============================================= 2 -- Author: bwch 3 -- Create date: 2014年9月30日10:32:47 4 -- Description: 把一个数字转换成指定进制,最大支持93进制,也可在Function内扩充@ym实现其他的转换 5 -- ===============

vc 文字转换到机内码,输入汉字和数字, 输出一串16进制码(数字-〉ASII码,汉字—〉国标码)

// 可以用,此程序实现的是是文字转换到机内码.机内码=国标码+8080H,不过学习了. //此程序是利用汉字在机器内输出就是机内码的原理,直接保存的,其实挺简单. //输入一串汉字和数字的混合字符, 经过程序转换, 对应输出一串16进制码(数字-〉ASII码,汉字—〉国标码) CString temp; GetDlgItemText(IDC_EDIT1,m_hanzi);//将汉字保存到变量m_hanzi unsigned char *b=new unsigned char[m_hanzi.G

一起talk C栗子吧(第七回:C语言实例--进制转换)

各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的样例是:进制转换.说到进制预计大家 都不陌生.计算机中的进制有二进制.八进制,十进制,十六进制. 今天咱们将要说的是十进制怎样转换成二进制.八进制和十六进制.在这里我把敲代码的步骤和算法思路 写出来供大家參考. 1.获取用户想要转换的数值和想到转换的进制.这里要检查输入是否正确.这是程序健壮性的体现

Python中数字之间的进制转换

https://www.cnblogs.com/Kingfan1993/p/9795541.html 在python中可以通过内置方法进行相应的进制转换,但需记得转化成非十进制时,都会将数字转化成字符串 转化成二进制 a = 10 #声明数字,默认十进制 b = bin(a) print(b , type(b)) 运行结果: 转化成八进制 a = 10 #声明数字,默认十进制 b = oct(a) print(b , type(b)) 运行结果: 转化成16进制 a = 10 #声明数字,默认十

(数字类型,进制转换,字符串,列表)介绍和操作

数字类型 整型 用途:记录年龄.等级.号码等 定义方式如 age = 18 本质 # age = int(18) 整型只能存一个值而且是不可变类型 int()方法能将字符串转为整型 需要注意的是使用int只能转纯数字的字符串,有小数点也不行 浮点型 用途:记录身高.体重.薪资等 定义方式如 height= 185.1 本质 # height= float(185.1) 浮点型只能存一个值而且是不可变类型 float()方法能将字符串和整型转为浮点型 需要注意的是使用float方法只能转纯数字的字

关于C++读入数字按位取出与进制转换问题

这一片博客我就不写具体的一个题了,只是总结一种典型问题——读入数字按位取出. 就拿数字12345举例吧. 是首先,我们要取出个位.这样取出: 12345/1=12345 12345%10=5.     //为了好发现规律 这样我们就有了它的个位.十位是这样: 12345/10=1234 1234%10=4. 同理,百位: 12345/100=123 123%10=3. 于是可以发现,取出哪一位,就是要先将原数除以这一位的位名,再模10. 程序: #include<iostream> #incl

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

黑马程序员------进制转换

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 在java中数字的表现形式一般有二进制,八进制,十进制,十六进制等,在平时的编程中我们可以通过java提供的API函数方便的实现各个进制间的转换,如:Integer.toHexString(int i)--十进制转十六进制:Integer