计算机中数据的表示

进位计数制及其转换

在采用进位计数的数字系统中,如果只用R个基本符号(例如0,1,2,…,R-1)表示数值,则称其为R进制,R称为该数制的基数(Radix)。
不同数制度的共同特点:
a.每一种数制都有固定的符号集。
b.每一种数制都使用位置表示法。即处于不同位置的数符所代表的值不同,与它所在位置的权值有关。例如,十进制 1234.55可表示为:1234.55=1x103+2x102+3x101+4x100+5x10-1+5x10-2

计算机中常用的进位数制表示计算机中数据的表示
不同进制之间的对照关系
计算机中数据的表示

进制间的相互转换

1.R进制转10进制
将R进制按权展开求和即可得相应的十进制数
例如
十六进制转十进制
(234)H= (2x162+3x161+4x160)D =(564)D
八进制转十进制
(234)O= (2×82+3×81+4×80)D = (156)D
二进制转十进制
(10110)B=(1×24+0×23+1×22+1×21+0×20)D =(22)D

2.十进制转R进制
十进制数转换成R进制分为两部分:整数部分和小数部分。
整数部分可以采用 “除R取余,逆序排列” 法,即将十进制整数部分连续地除以R取余数,直到商为0。
小数部分转换成R进制数采用 “乘R取整,顺序排列” 法,即将十进制小数不断乘以R取整数,直到小数部分为0或达到要求的精度为止(当小数部分永远不会达到0时)。
计算机中数据的表示
3.二进制转十六进制
一位的十六进制数正好对应与四位二进制数 。从小数点起,每四位二进制位分成一组(不足四位时,在小数点左边时左边补0,在小数点右边时右边补0),然后写出每一组的等值十六进制数 ,顺序排列起来就得到所要求的十六进制数。
例如
(10101111.10111)B=(1010 1111.1011 1000)B=(AF.B8)H

4.二进制转八进制
一位的八进制数正好对应与三位二进制数 。从小数点起,每三位二进制位分成一组(不足三位时,在小数点左边时左边补0,在小数点右边时右边补0),然后写出每一组的等值八进制数, 顺序排列起来就得到所要求的八进制数。
例如
(10101111.10111)B=(010 101 111.101 110)B=(257.56)O

5.十六进制转八进制
采用先转换为二进制
然后按照二进制转八进制的方法转换

二进制运算规则

1.加法:“逢二进一”

0+0=0 1+0=1 0+1=1 1+1=0(有进位)

2.减法:“借一当二”

0-0=0 1-0=1 1-1=0 0-1=1(有借位)

3.乘法

0x0=0 1x0=0 0x1=0 1x1=1

机器数和码制

(五)、机器数和码制

各种数据在计算机中表示的形式称为机器数, 其特点是采用二进制计数制,数的符号用0 , 1表示,小数点隐含表示而不占位置. 机器数对应得实际数值为数的真值。
符号位:如果机器字长为n,则== 最高位(或最左边的第一位是符号位:0表示正号,1表示负号==。
1、原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示数值绝对值. 如果机器字长n=8:

数值 原码 数值 原码
+0 00000000 -0 10000000
+1 00000001 -1 10000001
+127 01111111 -127 11111111
+45 00101101 -45 10101101
+0.5 0<>1000000 -0.5 1<>1000000

2、反码:正数的反码与原码相同,负数的反码则是其绝对值。

数值 反码 数值 反码
+0 00000000 -0 11111111
+1 00000001 -1 11111110
+127 01111111 -127 10000000
+45 00101101 -45 11010010
+0.5 0<>1000000 -0.5 1<>01111111

3、补码:正数的补码与其原码相同,负数的的补码则等于其反码的末尾加1。

数值 补码 数值 补码
+0 00000000 (唯一) -0 00000000
+1 00000001 -1 11111111
+127 01111111 -127 10000001
+45 00101101 -45 11010011
+0.5 0<>1000000 -0.5 1<>1000000

4、移码:只要将补码的符号位取反便可获得相应的移码表示

数值 移码 数值 移码
+1 10000001 -1 01111111
+127 11111111 -127 00000001
+45 10101101 -45 01010011
+0 10000000 -0 10000000

定点数和浮点数

1.定点数
指小数点固定在某个位置上的数据。
定点整数:小数点位于最低位之后。
定点小数:小数点位于最高之前,符号位之后。
注意不管是定点数还是浮点数,小数点是不占用二进制位的。

设机器字长为n,各种码制表示下的带符号数的范围如表所示

码制 定点整数 定点小数
原码 -(2n-1-1) ~ +(2n-1-1) -(1-2-(n-1)) ~ +(1-2-(n-1))
反码 -(2n-1-1) ~ +(2n-1-1) -(1-2-(n-1)) ~ +(1-2-(n-1))
补码 -2n-1 ~ +(2n-1-1) -1 ~ +(1-2-(n-1))
移码 -2n-1 ~ +(2n-1-1) -1 ~ +(1-2-(n-1))

2.浮点数
小数点为值可浮动的数据,通常表示为
N = 2Ex F
其中 E为阶码,F为尾数,这种表示法称为浮点表示法。
浮点数表示法中阶码通常为带符号的纯整数尾数为带符号的纯小数
一般格式:

阶符 阶码 数符 尾数

计算机中数据的表示
IEEE754国际标准,常用的浮点数有两种格式

  • 单精度浮点数(32位),阶码8位,尾数24位(内含1位符号位)
  • 双精度浮点数(64位),阶码11位,尾数53位(内含1位符号位)

该标准还规定:基数为2,阶码采用移码,尾数采用原码。
例如:将176.0625表示为符合IEEE754标准的单精度浮点数。
首先将1 76.0625化为二进制:
176. 0625D=101 100000001B
规格化处理:
101 10000.0001=1.01100000001 X27
去掉bg,并扩展成23位尾数: 01 10000000100000000000
求阶码的移码:
[7]移= 0000110
于是得到其标准形式为: 0 10000110 101000000F01000000103

BCD编码

用4位的二进制来表示一个十进制的数字。

十进制 8421BCD码 余3BCD码 格雷码
0 0000 0011 0000
1 0001 0100 0001
2 0010 0101 0011
3 0011 0110 0010
4 0100 0111 0110
5 0101 1000 1110
6 0110 1001 1010
7 0111 1010 1000
8 1000 1011 1100
9 1001 1100 0100

ASCII编码

基本的ASCII码采用7二进制位,即d6d5d4d3d2d1d0对字符进行编码:低4位组d3d2d1d0用作行编码,高3位组d6d5d4作为列编码。
计算机中数据的表示

汉字编码

◎区位码:区位码将GB2321-80方案中的字符按其位置划分为94个区,每个区94个字符,区的编号是从1~ 94,区内字符编号也是从1~94,区号和区内编号各占一个字节。比如"常"字在第19区中排第3,各化成十六进制为13H、03H,因此其区位码为1303H。

◎国标码:国标码又称为汉字交换码,就是国家标准局规定的GB2312- -80信息交换用汉字编码集,在计算机之间交换信息用。用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为214=16384个。将汉字区位码的高位字节、低位字节各加十进制数32 (即20H),便得到国标码。例如"常”字的国标码为3323H。

◎机内码:汉字机内码是计算机内部存储、处理、传输汉字用的代码,又称汉字内部码、汉宇内码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128D或80H。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。“大的国标码为3473H,其机内码就是B4F3H。

UCS

◎为了统表示世界各国的文字,IS0在1993年公布了"通用字符集的国际标准ISO/IEC10646,简称UCS (Universal Code Set),该标准使用4字节的二进制位来表示个字符,从低到高每个字节分别指定该字符所位于的组、平面、行和字位。例如,"大”字在UCS中的编码为0000592H,它就处于00H组、00H平面、59H行、第27H字位上。
◎UCS中的00H组00H平面称为基本多文种平面,包含了西文字母、音节字母及表意文字,其分为四个区:
A区: 0000H~4DFFH, 用于西文字母,音节文字及各种符号。
I区: 4EOOH~9FFFH, 用于中、韩、日等国表意文字。
0区: A000H~DFFFH, 留做未来标准化使用。
R区: E00OH~FFFDH, 限制使用区,包括专用字符、兼容字符等。