十进制数与最小的二进制补码码的相互转换表

二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
3. 十进制数转换成十六进除16取余,16进制一般用0~9,A,B,C,D,E,F,所以,117D转换成十六进制为:75H,
<FONT color=#ff 十六进制 到 二进制 :每一位用4位二进制数来表示,最终形成对应的二进制数,如:
A19CH :A=10(十进制)=1010 ,1 = 0001 ,9 = 1001,C = 12(十进制)=1100,
&所以A19CH = 1100B
通常,机器数是把符号"数字化"的数,是数字在计算机中的二进制表示形式。
  数的符号数值化。实用的数据有正数和负数,由于计算机内部硬件只能表示两种物理状态(用0和1表示),因此实用数据的正号“+”或负号“-”,在机器里就用一位二进制的0或1来区别。通常这个符号放在二进制数的最高位,称符号位,以0代表符号“+”,以1代表符号“-”。因为有符号占据一位,数的形式值就不等于真正的数值,带符号位的机器数对应的数值称为机器数的真值。 例如二进制真值数-011011,它的机器 1011011。
二进制的位数受机器设备的限制。机器内部设备一次能表示的二进制位数叫机器的字长,一台机器的字长是固定的。字长8位叫一个字节(Byte),现在机器字长一般都是字节的整数倍,如字长8位、16位、32位、64位。
&&&&&& 机器数可以用不同的码制来表示,常用的有原码,补码,和反码表示法。
&& 将数的真值形式中“+”号用“0”表示,“-”号用“1”表示时,叫做数的原码形式,简称原码。若字长为n位,原码一般可表示为:
  (1)当X为正数时[X]原和X一样,即[X]原 = X。当X为负数时 。由于X本身为负数,所以,实际上是将∣X∣数值部分绝对值前面的符号位上写成“1”即可。
原码表示法比较直观,它的数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。但是它的加减法运算较复杂。当两数相加时,机器要首先判断两数的符号是否相同,如果相同则两数相加,若符号不同,则两数相减。在做减法前,还要判断两数绝对值的大小,然后用大数减去小数,最后再确定差的符号,换言之,用这样一种直接的形式进行加运算时,负数的符号位不能与其数值部分一道参加运算,而必须利用单独的线路确定和的符号位。要实现这些操作,电路就很复杂,这显然是不经济实用的。为了减少设备,解决机器内负数的符号位参加运算的问题,总是将减法运算变成加法运算,也就引进了反码和补码这两种机器数。
  如前所述,为了克服原码运算的缺点,采用机器数的反码和补码表示法。若字长为n位,反码可表示为:
  (2)即对正数来说,其反码和原码的形式相同;对负数来说,反码为其原码的数值部分各位变反。
  补码是根据同余的概念引入的,我们来看一个减法通过加法来实现的例子。假定现在是北京时间6点整,有一只手表却是8点整,比北京时间快了2小时,校准的方法有两种,一种是倒拨2小时,一种是正拨10小时。若规定倒拨是做减法,正拨是做加法,那么对手表来讲减2与加10是等价的,也就是说减2可以用加10来实现。这是因为8加10等于18,然而手表最大只能指示12,当大于12时12自然丢失,18减去12就只剩6了。这说明减法在一定条件下,是可以用加法来代替的。这里“12”称为“模”,10称为“-2”对模12的补数。推广到一般则有:
  A – B = A + ( – B + M ) = A + ( – B )补
总之,正数的原码、反码和补码是完全相同的;负数的原码、反码和补码其形式各不相同。另外,特别要注意的是,对于负数的反码和补码(即符号位为1的数),其符号位后边的几位数表示的并不是此数的数值。如果要想知道此数的大小,一定要求其反码或补码才行。
多数机器里面都是采用补码表示,正数采用符号+绝对值表示,如:假设机器字长为8位,则[+1]补 = ,[+127]补=,[+0]补=,当用补码表示法表示负数时,负数X用2的n次方-[X]来表示,其中n为机器的字长。如:[-1]补 = 28-1 = ,[-127]补 =& 28-127=256-127=129=的补码就只有一种表示法:八个0,.
对于这个数,在补码表示法中被定义为-128,采用补码形式表示的有符号数,那么n位二进制数据能够表示的有符号整数的范围是:-2(n-1)~2(n-1)-1&&&& 是n-1次方(我现在能够理解补码了,也能理解这个范围了,我以前好像陷入了一个这种误解,老是以为这个范围,是这样得出的,比如,负数,最高位是1,对于机器字长8位来说,剩余的七位全是1,即1111111,加起来,就是八个,然后,最小的就是8个0,,然后把这个数转换成相应的十进制,就是范围,其实,我理解错了,为什么呢,这里的所谓的是补码,而我把补码的表示当成了原码的表示来转换成十进制,这就是错误的根源,说明我以前是没理解补码和原码的区别)
那么,8位表示的有符号数的范围是:-128~127,如果n =16,那么能够表示的有符号数整数的范围是-(记住这个范围)
例如,假设机器字长是16位,写出-117D的补码表示:
-117D = 216-117D 我把每个数都转化成2进制,也就是1 00 0000 – 11 0101 = 00 1011 这个数转换成六进制就是 FF8BH。
我采用书上的解法就是:
&& 首先:+117D可表示为: 11 0101
&& 按位求反后为&&&&&&&&&& 00 1010
&& 某位加1 后:&&&&&&&&&& 00 1011
&& 表示成十六进制:&&&&&&& F&&& F&& 8&& B(最终结果)
如果,对于无符号数来说,8位无符号数的表示范围:0&=n&=2的n次方-1,即:0~255
16位无符号数的表示范围:0&=n&=2n的n次方-1,即:0~65535(也要记住)
符号扩展,常需要把一个n位二进制数扩展为m位二进制数,(m&n),当要扩充的数十无符号数时,只要在最高位前扩展m-n个0,例如,21的8位二进制和16位二进制的补码表示如下:位,& 0101 16位
如果要扩展的数是有符号数,并且采用补码形式表示,进行符号扩展,如:-3的8位二进制补码和16位二进制补码如下:-3& 位补码,11 1101 16位补码,
补码的加法和减法
把一个二进制按位求反,末位加1的运输称为求补运算。求补运算有个特性,[X]补---》求补[-x]补 --à求补[X]补,就是,比如,3的补码表示是:,这个数求补:,对-3再求补,就变成了,则又变成了整数3,
例如:用8位二进制计算,25+(-32)
我们用求补码的方式来解决这个问题,25是整数,他的补码为:,
(-32)的补码是:先求32的补码:,对它求反:,末尾加1,得:,然后把它与25的补码相加得,这个数最高位为1,肯定是个负数,我们对这个数求反再末尾加1,得,刚好为7,根据补码的那个求补特性,[X]补---》求补[-x]补 --à求补[X]补,所以就是-7,跟我们用十进制算出来的结果一样。
阅读(14849)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'二进制数 十六进制数 补码',
blogAbstract:'& 今天弄懂了二进制和十六进制之间的转换,特别是我终于弄懂了补码,解决了我以前学习时碰到的很多疑惑。爽! \r\n1. 在计算机里,通常用数字后面紧跟一个英文字母来表示该数的数字,\r\n十进制一般用D,二进制用B,八进制用O,十六进用H来表示,\r\n2. 首先,十进制数转换成二进制,除2取余,按箭头方向写,自上而下写出来,所以45D转换成二进制为:101101B\r\n\r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:1,
permalink:'blog/static/',
commentCount:3,
mainCommentCount:3,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}工具类服务
编辑部专用服务
作者专用服务
浅析计算机基础中二进制数与十进制数转换
分析了计算机中二进制数与十进制数的基本转换方法,并在此基础上提出以十六进制数为中间桥梁的快速转换方法,并用往年的全国计算机等级考试中的试题进行了验证.
Liang Chunhui
Cui Donghua
作者单位:
太原理工大学,山西,太原,030024
年,卷(期):
机标分类号:
在线出版日期:
本文读者也读过
相关检索词
万方数据知识服务平台--国家科技支撑计划资助项目(编号:2006BAH03B01)(C)北京万方数据股份有限公司
万方数据电子出版社将十进制数-113转换成八位二进制补码,答案是?要有运算过程。有多详细写多详细,谢谢
113的二进制是1110001-113转化成二进制补码(第一个一是符号“-”)然后取反(符号不变)
再加1之后就是+
为您推荐:
扫描下载二维码第三届·无线通信技术研讨会
2015o第二届中国IoT大会
ETFo智能硬件开发技术培训会
ETFo第三届&消费电子电池管理系统技术论坛
ETFo智能安防技术论坛
成都&智能工业创新应用论坛
移入鼠标可放大二维码
原码,反码,补码 - 二进制数及其他
作者:heiccd日 09:52
[导读] 问题出现了,那么就要解决它。计算机的先驱者们发现,若按照我们数学上的处理方法,则实现的电 路很复杂,便采取了另外一种方法,符号可以参与运算
问题出现了,那么就要解决它。计算机的先驱者们发现,若按照我们数学上的处理方法,则实现的电 路很复杂,便采取了另外一种方法,符号可以参与运算,而且结果也可以是正确的,这便是补码表示。讲补 码的时候涉及到几个概念:原码,反码,补码。
原码 最高位表示符号,其他位表示数值,则这种表示方法就是原码。如
[+10]原=B
[ -10]原=B
反码 对于正数,反码和原码一样。对于负数,反码就是把原码符号不变,数值为取反,如
[+10]反=B
[ -10]反=B
对于正数,补码和原码一样,对于负数,补码就是把反码加 1,如
[+10]补=B
[ -10]补=B
总结一下,对于正数,[X]补=[X]原
负数 ,[X]补=[X]反 +1
补码费劲的得到了有水木好处呢?我们用补码的话就可以直接带符号参与运算了。还是上面的例子。
[+10]补=B
+&&& [ -10]补=B
&&&&&&&&&&&&&&&&&&&
得到的结果是 0,可能有人说了,不是最前面有个 1 的吗,怎么会是 0 呢。这里我们不要忘记了,在计算机 中,所有的数据位数是固定的,我们这里举例为 8bit 的例子,那么得到结果后我们也只能保存八位,你看看 上面的结果,一共有 8 个 0,计算机只能保存这 8 个 0,最前面的 1 是不算在结果里的。所以,得到的结果 就是正确的。
补码的运算中还有一个溢出的问题,大家可以试着用补码来计算一下 -98+(-50),你会发现得到 了一个最高位是 0 的八位数,也就是说,变成了一个正数。这就是超出了数据范围,产生了溢出。关于溢 出,因为不是重点,大家可以自己查书找到答案。
3&&&&&& 万物归于阴阳
《易传》记录&易有太极,始生两仪。两仪生四象,四象生八卦。&这里所说的两仪,就是阴和阳。这 里所说的卦,是宇宙间的现象,是我们肉眼可以看见的现象,宇宙间共有八个基本的大现象,而宇宙间的万 有、万事、万物,皆依这八个现象而变化,这就是八卦法则的起源。而八卦的来源就是阴阳。 我国古代人们 发明的太极八卦用阴阳能够代表世间万物,那么由 0 和 1 组成的二进制数自然能够表示世间所有东西,而不 仅仅是几个数字。也就是说我们现实生活中的图形、图像、声音、文字、色彩等等,都可以用二进制数表 示,当然也可以在计算机中处理和显示出来。其实这个做到了的,否则我们今天也就不会有电脑里的图片、 音乐、视频、文字等等,我们今天的世界将不会这么多姿多彩。
那么,单纯的 0 和 1 如何表示世间的万物呢?这里要讲到一个词:代码。代码,从字面意思来看, 就是代替的码字,即我们找一组二进制数来代替,代替谁呢?代替世间的万物。到这里可能有人会有疑问 了?既然是代替的,必然不是真的,有什么用呢?自然有用,要是没用的话我们不会随时随地的使用。其实 我们就是生活在一个代码的世界里,如我们的名字就是一个代码,用汉字给我们每个人的一个代码,代表一 个个体。在学校里,每个学生都有一个学号,而这个学号就是一个代码,用一组十进制数来代表一个学生。 甚至我们所说的课桌,操场等等名词都是代码,用汉字来代表某个物体或者某种意义。代码到底有什么好处 呢?方便于我们的沟通和交流。还是以我们的名字为例来说。如果一个人叫&张三&,那么我们有事情要找 他,那么就喊&张三&,叫张三的人就答应了,于是你可以跟他交流了。合同上要双方签字,而就是签的名 字,合同签完后就可以存档了,不管经过多久,其他人看到这个签字,就知道这是经过双方本人认可了的, 而不需要双方两个大活人亲自告诉你说,这个合同我认可了的,因为名字就代表了其本人。如果我们不用代 码,那么一个合同文本上必须有两个人站在那里,证明合同双方都同意的,这是一件和荒唐的事情,文件柜 里站着两个大活人不是很滑稽和不可能的事情吗?所以,我们使用代码。注意的是代码就是代码,不是人本 身,你的名字不等于你这个人本身,它仅仅代表你这个人,我们不能说几个汉字和活生生的人是一样的吧。 每个人都有血有肉,有情感,但是汉字只是一些笔迹,不会有血肉。
代码,有任意性,就是我们可以用任何的东西来代表某个含义,如汉字里的&桌子&和英语里 的&desk&都是代表了同一种东西。这也表示这我们可以用随意的什么来代表我们每个人,我们的名字是汉 字,两个或者三个或者四个汉字,当然,我们也可以用数字来代表我们每个人,比如监狱里每个囚犯都有一 个编号,这个编号就是用十进制数来给每个人的代码。虽然代码有随意性,但是我们一般不会随意的进行编 写代码,而是按照某种规律来编码,因为有规律的代码使我们的维护更加方便。我们每个人的身份证就是一 个代码,是很有规律的,不知道有没有注意到这个规律。
代码就是用码字来代替,我们编写代码的过程叫做编码,有时候也称代码为编码。我们可以用 0 和 1
的二进制数按照某种规律排列起来代表任何一个事物,下面讲几种常用的代码。 二&&十进制代码
二&&十进制代码就是用二进制数对十进制数编写代码,也就是说用 0 和 1 来给十进制数的 10 个数
码 0~9 进行编码,也称为 BCD 码。接下来我们就看代码是如何进行编写的,需要多少位二进制数来进行编 码。表 3 列举了 1~4 位二进制数所能进行的编码个数,从中我们可以 知道,最少需要 4 位二进制数来进行编码。
表 3&& 1~4 位二进制数所能进行的编码个数
1 位二进制数
2 位二进制数
3 位二进制数
4 位二进制数
从表 3 中可以看到,有 N 位二进制数,那么代码的数量就是 &2 N&&& &,我们这里有 0~9 共计 10 个数,需要
多少位呢?3 位二进制数有 8 个代码,10 个数不够分,4 位二进制数有 16 个代码,还多了 6 个呢,我们怎 么办?我们可以想,如果有 10 个人来你家作客,如果你恰好有 10 张椅子还算好说,可是如果我们的椅子 不是恰好 10 把呢,你是提供 8 把椅子让 2 个客人站着还是提供 16 把椅子让椅子有空余呢?自然是提供 16 把椅子。多出来的 6 把椅子就让他空着吧。
我们在前面讲了,代码的编写具有随意性,也就是说你可以随意的编写你自己的代码,我们有 16 个 代码,给 10 个数进行编码,那么有多少种编码的方案呢?数学上问题就是从 16 个数里面取出 10 个数进行 全排列,计算的结果是大约有 10 亿种。这 10 亿种方案都是二&&十进制代码,不过我们不可能用那么 多,代码的编写虽然有随意性,但我们进行编码不是自己一个人用的,还需要和别人交流,那么编写一个有 规律的和通用性的代码是必须的。理论上有无限种可能,但实际我们只使用其中的几种。那么我们常用的都 是哪种代码呢?最常用的就是 8421BCD 码了。这种编码的每位都有一个权值,恰好与自然二进制数的前
10 个数据相同,即用 0000(0)~1001(9)来表示十进制数的 0~9,从高位到低位的权值分别是
8,4,2,1,所以就称作 8421BCD 码。在 8421BCD 码中,每组二进制数各位按照加权系数展开便是它
所对应的十进制数。如 8421BCD 码的 0110 安权展开为
+1X4+1X2+0X1=6
所以 8421BCD 码 0110 表示十进制数 6。 这里一定要注意代码和我们前面讲的十进制数转换为二进制数相区别,对于同一个数,两种运算结果
是不一样的,例如十进制数 12,如果转换为对应的二进制数,那么结果是 1100 ,而如果转换为
8421BCD 码,那么结果为 ,也就是说,8421BCD 码就是严格的按照一位十进制数对应着 4 位二进制数来写,2 位十进制数,必然对应着 8 位二进制数,他们之间只有我们在进行 8421BCD 码编写的 时候给的对应关系,12 和
没有数值上的任何关系。
BCD 码还有 5421 码、余 3 码等等,大家可以看看数字电子技术的教材,我不一一的讲解了。
ASCII 码(美国标准信息交换码),适用于所有的拉丁文字母,被国际标准化组织(ISO)批准为国 际标准,称为 ISO646 标准。我国相应的国家标准是 GB1988-80(即《信息处理交换用的七位编码字符 集》)。这里的 GB 读作&guo biao&(国标)而不是两个英文字母 &G& &B&。ASCII 码 规定了信息交换用的
128 个字符。每个字符用 b7b6b5b4b3b2b1 七位来标识,通常最高位用 0 表示,使用 7 位二进制数来表 示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。表 4 是 7 位
的 ASCII 码表。
表 4&& 7 位的 ASCII 码表
查看上面的表,我们可以看到字母&A&的 ASCII 码为 100 0001B,最高位为 0,即 B(41H, 十进制数是 65)。
对于 ASCII 码,我们不要去记忆什么,只需要知道如何查看就好。
GB 2312 是一个简体中文字符集的中国国家标准,全称为《信息交换用汉字编码字符集基本集》, 又称为 GB0,由中国国家标准总局发布,1981 年 5 月 1 日实施。GB2312 编码通行于中国大陆;新加坡 等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持 GB 2312。
GB 2312 标准共收录 6763 个汉字,其中一级汉字 3755 个,二级汉字 3008 个;同时,GB
2312 收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的 682 个全角字
GB 2312 的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆
99.75%的使用频率。
对于人名、古汉语等方面出现的罕用字,GB 2312 不能处理,这导致了后来 GBK 及 GB 18030 汉 字字符集的出现。
GB 2312 中对所收汉字进行了&分区&处理,每区含有 94 个汉字/符号。这种表示方式也称为区位
01-09 区为特殊符号。
16-55 区为一级汉字,按拼音排序。
56-87 区为二级汉字,按部首/笔画排序。
10-15 区及 88-94 区则未有编码。
举例来说,&啊&字是 GB2312 之中的第一个汉字,它的区位码就是 1601。 对于汉字编码,我们也不需要去管它,自然有计算机帮我们处理与之相关的问题,从信息处理的角度
来看,汉字处理也是非数值处理,和英文字母一样,需进行编码才能被计算机处理。 同样的,今天我们在计算机中所看到的每一样东西,包括图片、声音、视频等等都需要编码,也只有
进行了编码,我们才能在计算机中进行处理。我们的计算机不仅处理数值数据,还要处理大量的非数值数
据,而实际上,处理非数值数据要多的多。关于图片、声音、视频等的编码不是我今天的主题,请查阅相关
的专业书籍。
&& 上周有单片机课,讲到了二进制数,课堂上比较激动,下课后考虑到 09 级的学生在这个学期数电 、C 语言、单片机同时上课,对于二进制数可能会有理解上的难题,便决定把课堂上的讲课思路写下来,于是 就有了这篇文章。从上周四到现在,除开中间有其他的杂事,一共用了 2 天的时间写完。主要讲解了二进 制、十进制、十六进制的相互转换,带符号数的补码表示方法,编码的概念以及 8421BCD 码,ASCII 码, 简单的介绍了汉字的编码。对于八进制数,进制转换时小数的处理,因为我觉得这些不是最主要的,知道了十六进制数那么八进制数也就没什么困难了,至于小数的进制转换,原理和整数一样,在后续的学习中很少使用,所以不讲,上课的时候跟着老师听一遍就会的。补码运算,溢出没有过多的讲解,因为这部分理解上 有些困难,等这个学期结束了,再来看这两个问题比较好。我在写的时候就在不断的思考如何讲才能让学生逐步的,递进的理解,我是尽力的按照上课的时候讲 课思路来写的,语言也差不多是平时的用词,没有使用很正规的语法。有时候我发觉自己的思维有些跳跃,也不知道学生们能不能看懂这篇文章,如果有任何的问题,请告诉我。也欢迎你们把它分发到电子系其他班级同学那里,让大家得到方便。本文章不希望被转载,也不希望在没有得到我同意的情况下被任何刊物发表以及网站转载,但你可以 随意的下载阅读。除了大约 500 字是从百度上搜索得到以及图片扫描了其他教材的外,其他的文字都是我 逐字逐句的敲进去的,请尊重我的版权,下载后请保持原样,不要作任何修改,版权属于作者本人。
二进制相关文章
二进制相关下载
技术交流、积极发言! 发表评请遵守相关规定。
SK时科总经理颜小东认为,一颗良芯包含三个标准:产品质量稳定、高性能和低能耗。在强手如林的半导体分立器件市场,SK时科凭借不断提升的研发能力,...
机器人会不会导致一线工人失业?中国工业机器人企业如何与国际竞争?中国缺不缺创新人才?4月26日,在中欧国际工商学院大师课堂上,ABB(中国)有限...
创新实用技术专题
Copyright &
.All Rights Reserved二进制与十进制整数,浮点数相互转换
整数转化为二进制
1.正整数用源码表示
2.负整数用绝对值的补码表示(将绝对值取反+1)
如-50用50的补码表示
50的源码为&
补码为反码+1&
二进制转化为整数
1.如果符号位为0,表示为正,直接将二进制数据翻译即可
2.如果符号位为1,表示为负,将数据-1取反.或者(取反+1)
浮点型转化为二进制
将整数转化为二进制,去掉首位1,小数转化为二进制,整数去1后二进制位数+127转化为二进制,然后根据浮点型正负在最前面加上符号位。
如:-40.125
整数为101000,去掉首位1则为01000,小数为001,则整数位数为5,+127=132(),加上符号位1,则二进制数据为
100 0010 0
去掉首位1:&
加上前八位表示小数点位置: 100 00 1
加上小数位:&&&&&&&&&&&&&&
100 00 00 0000
加上符号位:&&& 1100
00 00 0000 &
二进制转化为浮点型
去掉首位符号位,取前八位-127然后将剩余的二进制数据小数点后移所得值,首位+1,小数点之前位整数,之后为小数,由符号位判断正负。
如:正数:&00 10 1111
去掉符号位:&&&&
100 00 11 1100
前八位&& 100 0011
0=134&&& -124
整数:&&&&&
0100&&&&首位+1&&
小数:&&&&&&&
小数依次乘1/2,1/4,1/8,1/16....=1/2*0+1/4*1+1/8*0+1/16*0+1/32*0+1/64*1......最后得出保留四位小数的话是196.2769
如:&&10 10
取掉符号位: & 100 10 01
取前八位& 100 0010
0&&&&=132&
整数部分:&&&&&&&&&&&&&&&&
00&&&&&&&&&&&&&&&&&&&&&&&&&&
首位+1& =1010 00&&
小数部分&&& 10 0111
=1/2+1/16+1/32+1/64+1/128+1/256+....=0.621浮点数为
十进制小数→→→→→二进制小数 方法:“乘2取整”
对十进制小数乘2得到的整数部分和小数部分,整数部分既是相应的二进制数码,再用2乘小数部分(之前乘后得到新的小数部分),又得到整数和小数部分.
如此不断重复,直到小数部分为0或达到精度要求为止.第一次所得到为最高位,最后一次得到为最低位
如:0.25的二进制
0.25*2=0.5& 取整是0
0.5*2=1.0&&&
即0.25的二进制为 0.01 (
第一次所得到为最高位,最后一次得到为最低位)
0.8125的二进制
0..625&& 取整是1
0.625*2=1.25&&&&
0.25*2=0.5&&&&&&
0.5*2=1.0&&&&&&&
即0.8125的二进制是0.1101(第一次所得到为最高位,最后一次得到为最低位)
十进制小数→→→→→八进制小数 方法:“乘8取整”
0.71875)10 =(0.56)8
0.75*8=6.0&&&&&
十进制小数→→→→→十六进制小数方法:“乘16取整”例如:
(0.=(0.248)16
0.=2.28125& 取整2
0..5&&&&&&&&&
0.5*16=8.0&&&&&&&&&&&&&
非十进制数之间的转换
(1)二进制数与八进制数之间的转换
转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:
(423。45)8=(100 010 011.100 101)2
(1)2=(001 001 001.110
100)2=(111.64)8
(2)二进制与十六进制转换
转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:
(ABCD。EF)16=(00
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 二进制补码转换器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信