浅谈数据在计算机中的表示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈数据在内存中的表示方法
【摘要】:学习计算机,必须弄清数据在内存中的表示方法。数据在计算机内部是以二进制形式来表示的,为了便于问题描述,还常常用到八进制和十六进制。除此之外,二进制数在计算机内部的表示形式还与机器的字长和符号有关,这样的数叫机器数。
【关键字】:数制、基数、位权、机器数、原码、反码、补码。
一、数制
1.十进制数
十进制数采用0、1、···、9十个不同的数码;在计数时,采用“逢十进一”及“借一当十”;十进制的基数是10;十进制数的标注用D表示。每个数码处于十进制数的不同数位时,代表的数值是不同的,这些数值称为位权。
例如:(1234.56)10=1⨯103+2⨯102+3⨯101+4⨯100+5⨯10-1+6⨯10-2
2.二进制数
二进制数只有0和1两个数码;在计数时“逢二进一”及“借一当二”;二进制的基数是2;二进制数的标注用B表示。每个数位的位权值为2的幂。
例如:(1101.01)2=1⨯23+1⨯22+0⨯21+1⨯20+0⨯2-1+1⨯2-2
3.八进制
八进制数有0~7八个数码;在计数时“逢八进一”及“借一当八”;八进制的基数是8;八进制数的标注用O(Q)表示。每个数位的位权值为8的幂。
例如:(102.01)8=1⨯82+0⨯81+2⨯80+0⨯8-1+1⨯8-2
4.十六进制
十六进制数有0~9、A~F十六个数码符号,其中A~F六个符号依次表示10~15;在计数时“逢十六进一”及“借一当十六”;十六进制的基数是16;16进制数的标注用H表示。每个数位的位权值为16的幂。
例如:(A6.C)16=10⨯161+6⨯160+12⨯16-1
二、不同数制之间的转换
1.非十进制数转换成十进制数
方法:将非十进制数转换为等值的十进制数,只要将非十进制数按位权展开,再按十进制运算规则运算即可。
2.将十进制数转换成非十进制数
将十进制数的整数部分和小数部分分别进行转换,然后合并起来。
(1)十进制数整数转换成非十进制数,采用逐次除以基数R(要转换的基数)取余数的方法,其步骤如下:
a) 将给定的十进制数除以R,余数作为R进制数的最低位;
b) 把前一步的商再除以R,余数作为次低位;
c) 重复b步骤,记下余数,直至最后商为0,最后的余数即为R进制的最高位。
(2)十进制数纯小数转换成非进制数,采用将小数部分逐次乘以R,取乘积的整数部分作为R进制的各有关数位,乘积的小数部分继续乘以R,直至最后乘积为整数或达到一定的精度为止。
3.二进制数与八进制数、十六进制数之间的转换
(1)二进制数与八进制数的转换
a)二进制数转换为八进制数
方法:二进制数转换成八进制数时,只需从小数点位置开始,分别向左或向右每三位二进制数划分为一组,不足三位的,整数部分在前面补0,小数部分在后面补0,然后写出每一组二进制数所对应的八进制数码即可。
b)八进制数转换为二进制数
方法:将每位八进制数分别用三位二进制数表示,就可完成八进制数与二进制数的转换。
(2)二进制数与十六进制数的转换
a)二进制数转换为十六进制数
方法:二进制数转换成十六进制数时,只需从小数点位置开始,分别向左或向右每四位二进制数划分为一组,不足四位的,整数部分在前面补0,小数部分在后面补0,然后写出每一组二进制数所对应的十六进制数码即可。
b)十六进制数转换为二进制数
方法:将每位十六制数分别用四位二进制数表示,就可完成十六进制数与二进制数的转换。
4、八进制数、十六进制数和十进制数的转换
方法:这三者转换时,可把二进制数作为媒介,先把代转换的数转换成二进制数,然后将二进制数转换成要求转换的数制形式。
三、整数的原码、反码、补码
一般计算机中用16位、32位、64位等来表示整数,位数越多,能表示数的范围就越大。二进制数在计算机中的表示形式叫机器数。机器数有三种形式:原码、反码和补码。
1.原码表示法
整数有正负之分,为此,可用一个二进制位作为符号位,一般总是最高位,当符号位为“0”时表示正数,当符号位为“-1”时表示负数。当用16位来表示一个整数时,可表示如下:(0000000000101011)2=(+43)10
(1000000000101011)2=(-43)10
2.反码表示法
对于正整数来说,反码与原码表示形式一样。对于负整数来说,反码是在原码表示形式基础上,除符号位不变,其它位按位取反即可。
例如:
(+43)原=0000000000101011
(+43)反=0000000000101011
(-43)原=1000000000101011
(-43)反=1111111111010100
3.补码表示法
对于正整数来说,补码与原码表示形式一样。对于负整数来说,补码是在原码表示基础上,除符号位不变,其它位按位取反,末位加1即可。也就是在反码表示形式基础上,末位加1即可。
例如:
(+43)原=0000000000101011
(+43)补=0000000000101011
(-43)原=1000000000101011
(-43)反=1111111111010100
(-43)补=1111111111010101
对于正整数而言,其原码、反码、补码均相同,对于负整数而言,有((X)补)补=(X)原