计算机内数的表示与编码 计算机中数的表示一般采用什么编码方法

作者&投稿:蒯咱 (若有异议请与网页底部的电邮联系)
2、机器数的表示方法

a、原码

  1、定义:正数的符号位用0表示,负数的符号位用1表示,数值部分用二进制形式表示,称为该数的原码。
比如: 则
X=+81 (X)原 =0 1010001
Y=-81 (Y)原 =1 1010001
符号位 数值
  2、用原码表示一个数简单、直观、方便。但不能用它对两个同号数相减或两个异号数相加。

比如:将十进制数“+36”与“-45”的原码直接相加:
X=+36 (X)原 =00100100
Y=-45 (Y)原 =10101101

0 0 1 0 0 1 0 0……(+36)10+) 1 0 1 0 1 1 0 1……(-45)10
1 1 0 1 0 0 0 1……(-81)10
这显然是不对的。

b、反码

  定义:正数的反码和原码相同,负数的反码是对该数的原码除符号位外各位取反,即“0”变“1”,“1”变“0”。

例如:X=+81,Y=-81

X)原 =0 1010001 (X)反= 0 1010001

Y)原 =1 1010001 (Y)反= 1 0101110
   符号位 数值      符号位 数值

c、补码

  1、定义:正数的补码与原码相同,负数的补码是对该数的原码除符号外各位取反,然后加1,即反码加1。
比如:X=+81,Y=-81 (X)原=(X)反=(X)补=01010001
(Y)原=11010001
(Y)反=10101110
(Y)补=10101111

  2、计算机中,加减法基本上都采用补码进行运算,并且加减法运算都可以用加法来实现。
比如:计算十进制数:36-45,可 写成:36+(-45),即
(36)10 -(45)10 =(36)10+(-45)10
(36)原 =(36)反 = (36)补
= 00100100

(-45)原 = 10101101
(-45)反 = 11010010
(-45)补 = 11010011

0 0 1 0 0 1 0 0……(+36)10
+) 1 1 0 1 0 0 1 1……(-45)10
1 1 1 1 0 1 1 1……(-9)10
结果正确。

三、字符编码

  所谓字符编码就是规定用怎样的二进制编码来表示文字和符号。它主要有以下几种:1、BCD码(二--十进制码);2、ASCII码;3、汉字编码。

1、BCD码(二--十进制码):
  把十进制数的每一位分别写成二进制数形式的编码,称为二--十进制编码或BCD编码。BCD编码方法很多,但常用的是8421编码:它采用4 位二进制数表示1位十进制数,即每一位十进制数用四位二进制表示。这4位二进制数各位权由高到低分别是23、22、21、20,即8、4、2、1。这种编码最自然,最简单,且书写方便、直观、易于识别。

比如:十进制数1998的8421码为:
0001 1001 1001 1000

十进制: 1 9 9 8
8421码: 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0
位权: 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1

思考:
1、一个十进数的BCD码如何转换成十进制数?
2、一个十进制数的BCD码是该数的 二进制数吗?
3、一个十进制数的BCD码与二进制数之间如何相互转换?

2、ASCII码

ASCII码是计算机系统中使用得最广泛的一种编码(读作阿斯克伊码)。ASCII码虽然是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准。ASCII码已为世界公认,并在世界范围内通用。ASCII码有7位版本和8位版本两种。国际上通用的是7位版本。7位版本的ASCII码有128个元素,其中通用控制字符34个,阿拉伯数字10个,大、小写英文字母52个,各种标点符号和运算符号32个。

比如:“A”的ASCII码值为:1000001,即十进制的65;“a”的ASCII码值为:1100001,即十进制的97;“0”的ASCII码值为:0110000,即十进制的48。

3、汉字编码

  我国用户在使用计算机进行信息处理时,都要用到汉字:汉字的输入,输出以及汉字处理。这就需要对汉字进行编码。通常汉字有两种编码:国标码和机内码。
a、国标码
计算机处理汉字所用的编码标准是我国于1980年颁布的国家标准(GB2312-80),是国家规定的用于汉字编码的依据,简称国标码。
国标码规定:用两个字节表示一个汉字字符。在国标码中共收录汉字和图形符号7445个。
国标码本身也是一种汉字输入码。通常称为区位输入法。

b、机内码
机内码是指在计算机中表示一个汉字的编码。
机内码是一种机器内部的编码,其主要作用是作为汉字信息交换码使用:将不同系统使用的不同编码统一转换成国标码 ,使不同的系统之间的汉字信息进行交换。
正是由于机内码的存在,输入汉字时就允许用户根据自己的习惯使用不同的汉字输入法,比如:五笔字型、自然码、智能拼音等,进入系统后再统一转换成机内码存储。

(4)汉字编码
西文是拼音文字,基本符号比较少,编码比较容易,因此,在一个计算机系统中,输入、内部处理、存储和输出都可以使用同一代码。汉字种类繁多,编码比拼音文字困难,因此在不同的场合要使用不同的编码。通常有4种类型的编码,即输入码、国标码、内码、字形码。

① 输入码

输入码所解决的问题是如何使用西文标准键盘把汉字输入到计算机内。有各种不同的输入码,主要可以分为三类:数字编码、拼音编码和字编型码。

● 数字编码。就是用数字串代表一个汉字,常用的是国标区位码。它将国家标准局公布的6763个两级汉字分成94个区,每个区分94位。实际上是把汉字表示成二维数组,区码、位码各用两位十进制数表示,输入一个汉字需要按4次键。数字编码是惟一的,但很难记住。比如“中”字,它的区位码以十进制表示为5448(54是区码,48是位码),以十六进制表示为3630(36是区码,30是位码)。以十六进制表示的区位码不是用来输入汉字的。

● 拼音编码。是以汉字读音为基础的输入方法。由于汉字同音字太多,输入后一般要进行选择,影响了输入速度。

● 字型编码。是以汉字的形状确定的编码,即按汉字的笔画部件用字母或数字进行编码。如五笔字型、表形码,便属此类编码,其难点在于如何拆分一个汉字。

② 国标码

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

③ 内码

汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。无论使用何种输入码,进入计算机后就立即被转换为机内码。规则是将国标码的高位字节、低位字节各自加上128

为了统一表示世界各国的文字,1993年国际标准化组织公布了“通用多八位编码字符集”的国际标准ISO/IEC 10646,简称UCS(Universal Code Set),它为包括汉字在内的各种正在使用的文字规定了统一的编码方法。该标准使用4个字节来表示一个字符。其中,一个字节用来编码组,因为最高位不用,故总共表示128个组。一个字节编码平面,总共有256个平面,这样,每一组都包含256个平面。在一个平面内,用一个字节来编码行,因而总共有256行。再用一个字节来编码字位,故总共有256个字位。一个字符就被安排在这个编码空间的一个字位上。例如ASCII字符“A”,它的ASCII为41H,而在UCS中的编码则为00000041H,即位于00组、00面、00行的第41H字位上。又如汉字“大”,它在GB2312中的编码为3473H,而在UCS中的编码则为00005927H,即在00组、00面、59H行的第27H字位上。4个字节的编码足以包容世界上所有的字符,同时也符合现代处理系统的体系结构。

④ 字形码

表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。通常用点阵、矢量函数等表示。用点阵表示时,字形码指的就是这个汉字字形点阵的代码。根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16�0�716点阵、提高型汉字为24�0�724点阵、48�0�748点阵等。现在我们以24�0�724点阵为例来说明一个汉字字形码所要占用的内存空间。因为每行24个点就是24个二进制位,存储一行代码需要3个字节。那么,24行共占用3�0�724=72个字节。计算公式:每行点数/8�0�7行数。依此,对于48�0�748的点阵,一个汉字字形需要占用的存储空间为48/8�0�748=6�0�748=288个字节。

(十进制)或80(十六进制)。例如,“中”字的内码以十六进制表示时应为F4E8。这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
 

ASCII是美国标准信息交换码的缩写,用来制订计算机中每个符号对应的代码,这也叫做计算机的内码(code)。每个ASCII码以1个字节(Byte)储存,从0到数字127代表不同的常用符号,例如大写A的ASCII码是65,小写a则是97。由于ASCII字节的七个位,最高位并不使用,所以后来又将最高的一个位也编入这套内码中,成为八个位的延伸ASCII(扩展)码,这套内码加上了许多外文和表格等特殊符号,成为目前常用的内码。 这就是ANSI标准.

UNICODE 是目前用来解决 ASCII 码 256 个字符限制问题的一种比较流行的解决方案。大家知道,ASCII 字符集只有256个字符,用 0-255 之间的数字来表示。包括大小写字母、数字以及少数特殊字符;如标点符号、货币符号等。对于大多数拉丁语言来说,这些字符已经够用。但是,许多亚洲和东方语言所用的字符远远不止256个字符。有些超过千个。人们为了突破 ASCII 码字符数的限制,试图用一种简单的方法来针对超过256个字符的语言编写计算机程序。于是 UNICODE 应运而生。UNICODE 通过用双字节来表示一个字符,从而在更大范围内将数字代码映射到多种语言的字符集。

一、数制

1、什么是进位计数制 

  数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。 

 常用进位计数制:

 a、十位制(Decimal notation);

 b、二进制(Binary notation);

 c、八进制(Octal notation);

 d、十六进制数(Hexdecimal notation)

2、进位计数制的基数与位权
  "基数"和"位权"是进位计数制的两个要素。

(1)基数:所谓基数,就是进位计数制的每位数上可能有的数码的个数。例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。

(2)位权:所谓位权,是指一个数值的每一位上的数字的权值的大小。例如十进制数4567从低位到高位的位权分别为100、101、102、103。因为:
4567=4x103+5x 102+6x 101 +7x100

(3)数的位权表示:任何一种数制的数都可以表示成按位权展开的多项式之和。
比如:十进制数的435.05可表示为:
435.05=4x102+3x 101+5x100+0x10-1 +5x 10-2
  位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。

3、二进制数
  计算机中为何采用二进制:二进制运算简单、电路简单可靠、逻辑性强

(1)定义:按“逢二进一”的原则进行计数,称为二进制数,即每位上计满2 时 向高位进一。

(2)特点:每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;
比如:10011010与00101011是两个二进制数。

(3)二进制数的位权表示:
(1101.101)2=1x23+1x 22+0x 21+1x 20+1x2-1 +0x 2-2+1x2-3
(4)二进制数的运算规则
1 加法运算
① 0+0=0 ③ 1+1=10
② 0+1=1+0=1
2 乘法运算
① 0×0=0 ③ 1×1=1
② 0×1=1×0=0

4、八进位制数

(1)定义:按“逢八进一”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。

(2)特点:每个数的数位上只能是0、1、2、3、4、5、6、7八个数字;八进制数中最大数字是7,最小数字是0;基数为8;
比如:(1347)8与(62435)8是两个八进制数。
(3)八进制数的位权表示:
(107.13)8=1x 82+0x 81+7x 80+1x8-1 +3x 8-2

5、十六进制数

1)定义:按“逢十六进一”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。

(2)特点:每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16;
比如:(109)16与(2FDE)16是两个十六进制数。

(3)十六进制数的位权表示:
(109.13)16=1x 162+0x161+9x 160+1x16-1 +3x 16-2
(2FDE)16=2x 163+15x 162+13x 161+14x 160

6、常用计数制间的对应关系

 十进制   二进制    八进制    十六进制
  0     0       0       0
  1     1       1       1
  2     10      2       2
  4     100      4       4
  8     1000      10     8
  10     1010     12      A
  15     1111     17       F
  16     10000     20       10

7、数制间的转换

(一)、十进制数转换成非十进制数

1、十进制整数转换成非十进制整数

a、为什么要进行数制间的转换?
  将数由一种数制转换成另一种数制称为数制间的转换。
因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。这两个换算过程完全由计算机自动完成。
b、转换方法
  十进制整数化为非十进制整数采用“余数法”,即除基数取余数。
把十进制整数逐次用任意十制数的基数去除,一直到商是0 为止,然后将所得到的余数由下而上排列即可。
2、十进制小数转换成非十进制小数转换方法

  十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。
  把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。

二、非十进制数转换成十进制数

转换方法

  非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。

三、二、八、十进制数之间转换

1、二进制 数与八进制数之间的转换转换方法

  a、把二进制数转换为八进制数时,按“三位并一位”的方法进行。
以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。

  b、将八进制数转换成二进数时,采用“一位拆三位”的方法进行。
即 把八进制数每位上的数用相应的三位二进制数表示。

2、二进制数与十六进制数之间的转换转换方法

  a、把二进制数转换为十六进制数时,按“四位并一位”的方法进行。
以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。

  b、将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。
即 把十六进制数每位上的数用相应的四位二进制数表示。

计算机内数的表示与编码~

内部是2进制即只有0和1表示! 二进制。 机器码 当然是0和1表示的二进制数了 0和1表示的二进制数了

原码:一种计算机中对数字的二进制定点表示方法

小数在计算机中的表示
答:对于规格化二进制浮点示法而言,有效数位的第1位必定是1而不是0,因此IEEE 754规定:实际有效数位中的第1位被省去,因而,有效数位中默计含有1位。除了将指数安排在有效数位前面,还不足以快速比较两个浮点数的大小,例如1.0 × 2 -1 在计算机中表示为:0 11111111 00000000000000000000000。这个数...

汉字机内码怎么算出来的?
答:D6DOH 国际码一区位码4-2020H,汉字机内码一国际码+8080H。首先将区位码转换成国际码,然后将国际码加上8080H,即得机内码。

计算机内部用于处理数据和指令的编码是什么?
答:2、在计算机中,是采用二进制数。因而,要在计算机中表示的数、字母、符号等都要以特定的二进制码来表示,这就是二进制编码。母和各种字符($、#……)也必须按特定的规则用二进制编码才能在机中表示。普通的是采用ASCII( American Standard Code for Information Interchange)码。0~9的ASCII码为30...

计算机的机内数据一律采用什么进制
答:计算机的机内数据一律采用二进制。数据在计算机内部传送、处理和存储时,采用的数制“二进制”。二进制在数学和数字电路中指以2为基数的记数系统,以2为基数代表系统是二进位制的。这一系统中,通常用两个不同的符号0(代表零)和1(代表一)来表示,数字电子电路中,逻辑门的实现直接应用了二进制。...

机器数的表示是怎样的?
答:所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。 例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –0111 1111 = –127;这里所说的比如-3二进制代码为10000011,就是我们计算机里面对-3表示的源码。下面介绍源码 首先说明一点 在计算机内,有符号数有3种表示法:原码、反码...

全国计算机应用基础知识:汉字、字符编码
答:由于字长是计算机一次可处理的二进制数的位数,因此它与计算机处理数据的速率有关,是衡量计算机性能的一个重要因素。 (2)字符的编码。 ① ASCII码。 计算机只能识别二进制数,因此计算机中的数字、字母、符号也必须用二进制进行编码。编码方法有多种,微型机中普遍采用的是ASCII码(美国标准信息交换码),ASCII码现已...

算机中的字符编码方式简述
答:在计算机系统中,我们平时使用最多的是 ASCII 编码字符集,即:American Standard Code for Information Interchange( 美国信息交换标准代码的英文缩写)。其中(注:以下数值均按十进制数字进行介绍):从 0 - 31:包含有各种控制字符。例如:我们常见的 7 就是响铃、8就是退格键、9就是TAB键、13就...

求解,计算机中的二进制代码跟二进制数码是什么,为什么要采用代码跟...
答:由两个基本字符'0'、'1'组成的代码。其中,码元:"一位"二进制代码。码字:N个码元可以组成的不同组合,任意一个组合称一个码字。2.二进制数码:是使用离散(即不连续的)的0或1二进制来进行信息的输入,处理,传输、存贮等处理的系统。采用原因:采用二进制计数制,对于计算机等数字系统来说,运...

微机中采用的ascii编码,表示一个字符需占用二进制数
答:ASCII码是计算机内部用来表示字符的一种编码方式,它将每个字符映射到一个唯一的数字,这个数字可以在计算机内部使用二进制来表示。由于每个字符只需要用一个数字来表示,所以ASCII码非常简单高效。它被广泛应用于计算机系统中,包括微机、服务器、超级计算机等等。在微机中使用的ASCII编码,每个字符所占用的...

计算机常识?
答:有符号数的编码方式,常用的是补码,另外还有原码和反码等。用不同二进制编码方式表示有符号数时,所得到的机器数可能不一样,但是真值应该是相同的。无符号数是针对二进制来讲的。全部二进制均代表数值,没有符号位。即第一个"0"或"1"不表示正负。无符号数与有符号数相对 理解有符号数和无符号数...