二进制与数值信息的表示
浮点数的基数什么意思二、二进制及数值信息的表示和运算
(一)二进制
1.什么是二进制
二进制的基数是“2”,它只使用两个不同的数字符号,即0和1,而且二进制数是“逢二进一”。
2.二进制数的运算
对二进制数有两种不同类型的运算处理:算术运算和逻辑运算。
3.不同进位制数之间的转换
十进制整数转换成二进制整数可以采取“除以2取余法”。
十进制小数转换成二进制小数,可以采取“乘以2取整法”,把给定的十进制小数不断乘以2,取乘积的整数部分作为二进制小数的最高位,然后把乘积小数部分再乘以2,取乘积的整数
部分,得到二进制小数的第二位,重复上述过程,就可以得到希望的位数,有时得到的是近似值。八进制数转换成二进制数的方法很简单,只要把每一个八进制数字改写成等值的3位二进制数即可,且保持高、低位的次序不变。八进制数字与二进制数的对应关系如下:
(0)8 =000 (1)8 =001 (2)8 =010 (3)8 =011
(4)8 =100 (5)8 =101 (6)8 =110 (7)8 =111
十六进制数转换成二进制数的方法与八进制数转换成二进制数的方法类似,只要把每一个十六进制数字改写成等值的4位二进制数即可,且保持高、低位的次序不变。十六进制数字与二进制数的对应关系如下:
(0)16 =0000 (1)16 =0001 (2)16 =0010 (3)16 =0011
(4)16 =0100 (5)16 =0101 (6)16 =0110 (7)16 =0111
(8)16 =1000 (9)16 =1001 (A)16 =1010 (B)16 =1011
(C)16 =1100 (D)16 =1101 (E)16 =1110 (F)16 =1111
二进制数转换成八进制数,整数部分从低位向高位方向每3位用一个等值的八进制数来替换,最后不足3位时在高位补0凑满3位;小数部分从高位向低位方向每3位用一个等值的十六进制数来替换,最后不足3位时在低位补0凑满3位。
二进制数转换成十六进制数,整数部分从低位向高位方向每4位用一个等值的十六进制数来替换,最后不足4位时在高位补0凑满4位;小数部分从高位向低位方向每4位用一个等值的十六进制数来替换,最后不足4位时在低位补0凑满4位。
二进制数与八进制数、十六进制数有很简单、直观的对应关系。二进制数太长,书写、阅读、记忆均不方便;八进制、十六进制却像十进制数一样简练,易写易记。必须注意,计算机中只使用二进制一种计数制,并不使用其他计数制,但为了开发程序、调试程序、阅读机器内部代码时的方便,人们经常使用八进制或十六进制来等价地表示二进制,所以大家也必须熟练地掌握八进制和十六进制。
4.二进制信息的计量单位
二进制的每一位(即“0”或“1”)是组成二进制信息的最小单位,称为1个“比特”(bit),或称“位元”,简称“位”,一般用小写的字母“b”表示。比特是计算机中处理、存储、传输信息的
最小单位。
另一种稍大些的二进制信息的计量单位是“字节”(Byte),也称“位组”,一般用大写字母“B”表示。一个字节等于8个比特。
在信息处理系统中,使用各种不同的存储器来存储二进制信息时,使用的度量单位是比字节或字大得多,经常使用的单位有:
“千字节”(KB),1KB=2 10 字节=1024B
“兆字节”(MB),1MB=2 20 字节=1024KB
“吉字节”(GB),1GB=2 30 字节=1024MB(千兆字节)“太字节”(TB),1TB=2 40 字节
=1024GB(兆兆字节)
在网络中传输二进制信息时,由于是一位一位串行传输的,传输速率的度量单位与上述单位有所不同,且使用的是十进制。经常使用的速度单位有:
“比特/秒”(b/s),有时也称“bps”。如2400bps(2400b/s),9600bps(9600b/s)等。
“千比特/秒”(kb/s),1kb/s=10 3 比特/秒=1000b/s
“兆比特/秒”(Mb/s),1Mb/s=10 6 比特/秒=1000kb/s
“吉比特/秒”(Gb/s),1Gb/s=10 9 比特/秒=1000Mb/s
“太比特/秒”(Tb/s),1Tb/s=10 12 比特/秒=1000Gb/s
在计算机内部对二进制信息进行运算和处理时,使用的单位除了位(比特)和字节之外,还经常使用“字”作为单位。以80x86或Pentium微处理器为例,处理器可直接进行操作处理的数据单位有5种:位(dit)、字节(Byte)、字(Word)、双字(DoubleWord)和四字(QuadWord)。
(二)数值信息在计算机内的表示
1.整数(定点数)的表示
整数不使用小数点,所以它也叫做“定点数”。计算机中的整数分为两类:不带符号的整数(Unsigned Integer),带符号的整数(Signed Integer)。
不带符号的整数常用于表示地址等正整数,它们可以是8位、16位甚至32位。8个二进位表示的正整数其取值范是0~255(2 8 -1),16个二进位表示的正整数其取值范是0~65535(2 16 -1),32个二进位表示的正整数其取值范是0~2 32 -1。
带符号的整数必须使用一个二进位作为其符号位,一般总是最高位(最左面的一位),“0”表示“+”(正数),“1”表示“-”(负数),其余各位则用来表示数值的大小。
为了内部运算处理方便,负整数在计算机内不止一种表示方法。上面的表示法称为“原码”,另外的两种方法分别叫做“反码”和“补码”。
负数使用反码表示时,符号位仍为“1”,但绝对值部分却正好与原码相反(“0”变为“1”,“1”变为“0”)。
负数使用补码表示时,符号位也是“1”,但绝对值部分却是反码的个位加“1”后所得到的结果。注意:正整数无论采用原码、反码还是补码表示,其编码都是相同的,并无区别。
还有一种整数也经常在计算机内使用,称为“二进制编码的十进制”整数(Binary Coded Decimal,简称BCD整数),它使用4个二进位表示1个十进制数字,符号的表示仍与上相同。
2.实数(浮点数)的表示
实数也叫浮点数,因为它的小数点位置不固定。
一个实数总可以表达成一个纯小数和一个乘幂之积。
任意一个实数,在计算机内部都可以用“指数”(这是整数)和“尾数”(这是纯小数)来表示,这种用指数和尾数表示实数的方法叫做“浮点表示法”。所以,在计算机中实数也叫做“浮点数”,而整数则叫做“定点数”。
由于指数可以选用不同的编码(原码、补码等),尾数的格式和小数点位置也可以有不同规定,因此,浮点数的表示方法不是惟一的。不同计算机可以有不同的规定,这就引起了相互间数据格式的不兼容性。为此,美国电气与电子工程师协会(IEEE)制订了有关浮点数表示的工业标准IEEE754,已被当代所有各类处理器采用。
浮点数的长度可以是32位、64位甚至更长,位数越多,可表示的数值的范围越大,精度也越高。
(三)整数的性质和运算
1.整数补码表示的数学意义
无符号二进制整数的原码,其编码与数值之间的关系如下。
设K n Kn-1 …K1 K0是一个无符号二进制整数,S是它相应的十进制数值,则
S=Kn ×2 n +Kn-1 ×2n-1 +…+K1 ×21 +K0 ×2 0
其中的Kj(j=n,n-1,…1,0)只能为0或1,Kn 是最高位,K0 是最低位(个位)。
Kn Kn-1 …K1 K0 用来表示带符号整数时,Kn 是符号位,Kn-1 …K1 K0 则为数值位。若Kn Kn-1 …K1 K0 表示的是原码编码的整数,则十进制数值S与编码的关系是: S=Kn-1 ×2n-1 +…+K1×2 1 +K0 ×2 0 (当Kn =0)
S=-(Kn-1 ×2 n-1 +…+K 1 ×2 1 +K0 ×20 )
(当Kn =1)
但是,如果Kn n-1 …K1 K0 表示的是补码编码的整数时,不论符号位K n 如何,十进制数值S与编码的关系可以统一地表示成为:
S=Kn ×(-2n )+Kn-1 ×2n-1 +…+K1 ×21 +K0 ×20 采用补码表示的n位二进制带符号整数的有效范围是: -2n-1 ≤S≤2n-1 -1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论