《程序设计Csharp程序设计 (2).pdf》由会员分享,可在线阅读,更多相关《程序设计Csharp程序设计 (2).pdf(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#程序设计Programming in C#信息的表示与存储C#程序设计程序设计1、进制数的表示与转换2、信息的表示与存储31.2 信息的表示与存储计算机采用二进制即”0”和”1”的形式存储各种信息,原因是:物理上容易实现,可靠性高;运算简单,通用性强;便于表示和进行逻辑运算。41.2.1 计算机的数字系统无论哪种数制,都采用进位计数制方式和位置表示法,即每一种数制都有固定的基本符号(称为数码),处于不同位置的数码所代表的值是不同的。例如,十进制数123.45可表示为:21012123.451 102 103 104 105 10=+51.2.1 计算机的数字系统在数字系统中,用r个基本符号
2、(0、1、2、r-1)表示数值,称其为r进制数(radix-number system)。r称为该数制的基数(radix)。数制中每个位置对应的单位值称为位权。61.2.1 计算机的数字系统表1-1 计算机中常用的数字系统进制二进制十进制八进制十六进制进位规则逢二进一逢十进一逢八进一逢十六进一基数r210816基本符号0,10,1,2,90,1,2,70,1,2,9,A,B,C,D,E,F位权表示符号B(binary)D(decimal)O(octal)H(hexadecimal)2i 10i 8i 16i71.2.1 计算机的数字系统表1-2 二进制数、八进制数、十六进制数与十进制数之间的关
3、系十进制二进制八进制十六进制 十进制二进制八进制十六进制0000810001081111910011192102210101012A3113311101113B41004412110014C51015513110115D61106614111016E71117715111117F注:十六进制基本符号中,字母不区分大小写。81.2.1 计算机的数字系统任何一种进位计数制表示的数都可以写成一个多项式之和,即任意一个r进制数N都可以表示为式(1-1)的形式:1210121210121210121.nnmnnmnnmniiimNaaa a a aaarararararararar=+=其中ai是数码,
4、r是基数,ri是位权。(1-1)91.2.2 进位计数制的转换1十进制数转换成r进制数将十进制数转换为r进制数时,可分别按整数部分和小数部分转换,然后将结果加起来即可。101.2.2 进位计数制的转换十进制整数转换成r进制数十进制整数转换成r进制数的方法是除r取余法:即将十进制整数不断除以r取余数,直到商为0,先得到的余数是a0,最后得到的余数是an-1,则an-1an-2a0就是转换后的r进制数。111.2.2 进位计数制的转换十进制小数转换成r进制小数十进制小数转换成r进制数的方法是乘r取整法:即将十进制小数不断乘以r取整数,直到小数部分为0或达到要求的精度为止,先得到的整数是a-1,自左
5、向右排列,则a-1a-2就是转换后的r进制小数。121.2.2 进位计数制的转换【例1.1】将十进制数(127.18)D转换成二进制数。131.2.2 进位计数制的转换例题分析转换结果为注意,小数部分的转换是不精确的,这里根据精度要求保留6位小数。转换步骤如下图所示:.18DB=(127)(1111111.001011)141.2.2 进位计数制的转换例题分析.2 1272 632 312 152 72 32 1 011111111111111取余整数部分0.18 20.36 20.72 21.44 20.88 21.76 21.52001011取整小数部分a0a1a2a3a4a5a6.a-1
6、a-2a-3a-4a-5a-6二进制数转换截止151.2.2 进位计数制的转换2r进制数转换成十进制数将任意r进制数按照式(11)写成按位权展开的多项式,各位数码乘以各自的权值且累加起来,就得到该r进制数对应的十进制数。例如:543210123010001BD+=(101001.101)=1 222221 21 222(41.625)10121 82 83 84 8OD+=(12.34)=(10.4375)32101610 1611 1612 16HD+=(1ABC)=1(6844)161.2.2 进位计数制的转换3二、八、十六进制数相互转换二进制、八进制、十六进制之间存在特殊关系:81=23
7、、161=24,即1位八进制数相当于3位二进制数,1位十六进制数相当于4位二进制数。根据这种对应关系,可以得到它们之间的转换方法。171.2.2 进位计数制的转换二进制数转换成八进制数时,以小数点为中心向左右两边分组,每3位为一组转换成相应的八进制数,两头不足3位用0补;二进制数转换成十六进制数时,以小数点为中心向左右两边分组,每4位为一组转换成相应的十六进制数,两头不足4位用0补;八进制数转换成十六进制数或十六进制数转换成八进制数时,可以借助二进制。181.2.2 进位计数制的转换(0101 1010 0011.1001 0100)B=(5A3.94)H (整数高位和小数低位补0)5 A 3
8、 9 4(111 110 101 100.011 010)B=(7654.32)O (整数高位补0)7 6 5 4 3 2(ABC.D)H=(1010 1011 1100.1101)B (整数前的高位0和小数后的低位0可取消)A B C D(765.43)O=(111 110 101.100 011)B (整数前的高位0可取消)7 6 5 4 3(3C)H=(0011 1100)B =(000 111 100)B =(74)O (借助二进制转换)3 C 0 7 4下面是二进制、八进制、十六进制数相互转换的示例。191.2.3 数值数据的表示1整数在计算机中的表示通常将一个数的最高二进制位定义为
9、符号位,称为数符,用0表示正数、1表示负数,其余位表示数值。201.2.3 数值数据的表示在计算机中,作为整体参与运算、处理和传送的一串二进制的位数称为字长,字长一般是8的倍数,例如8位、16位、32位、64位等。一个数在计算机中的表示形式称为机器数。1.2.3 数值数据的表示21原码整数的原码是数符位0表示正,1表示负,数值部分是绝对值的二进制表示,记为,原码表示数的范围是。例如:()X原11(21)21nn(1)00000001+=原(127)01111111+=原(0)00000000+=原(1)10000001=原(127)11111111=原(0)10000000=原1.2.3 数值
10、数据的表示22(1)00000001+=反(127)01111111+=反(0)00000000+=反(1)11111110=反(127)10000000=反(0)11111111=反()X反反码整数的反码是对于正数,反码就是原码;对于负数,数符位为1,其数值位为原码中的数值位按位取反,记为,反码表示数的范围是。例如:11(21)21nn1.2.3 数值数据的表示23补码整数的补码是对于正数,补码与反码、原码相同;对于负数,数符位为1,其数值位为反码加1,记为。补码表示数的范围是。例如:(1)00000001+=补(127)01111111+=补(0)(0)00000000+=补补(1)111
11、11111=补(127)10000001=补(128)10000000=补()X补112 21nn241.2.3 数值数据的表示【例1.2】计算(9)+9的值。251.2.3 数值数据的表示例题分析 11110111 9的补码 00001001 9的补码1 00000000 最高位进位丢弃+丢弃高位1,运算结果为0。261.2.3 数值数据的表示【例1.3】计算65+66的值。271.2.3 数值数据的表示例题分析利用补码进行运算,当运算结果超出表示范围时,会产生不正确的结果。01000001 65的补码 01000010 66的补码 10000011 125的补码+1.2.3 数值数据的表示
12、28无符号整数无符号整数是指没有正负之分的整数。无符号整数总是大于等于0,其数的表示范围是02n-1。291.2.3 数值数据的表示【例1.4】计算无符号整数75+56的值。301.2.3 数值数据的表示例题分析由于是无符号整数,故直接转换成十进制数为131。7556B+=(10000011)1.2.3 数值数据的表示312浮点数在计算机中的表示数学中的实数在计算机中称为浮点数,是指小数点位置不固定的数。浮点数用二进制表示,但表示方法比整数复杂得多。大多数计算机都遵守IEEE754浮点数标准,主要有单精度浮点数(float或single)和双精度浮点数(double)格式。1.2.4 非数值数
13、据的表示321西文字符西文字符包含英文字符、数字、各种符号,按特定的规则进行二进制编码才能进入计算机,最常用的是美国信息交换标准代码ASCII(American Standard Code for Information Interchange)。1.2.4 非数值数据的表示332汉字字符汉字字符编码有输入码、字形码、国标码、机内码之分。除此之外,汉字内码还有Unicode码、GBK码、GB18030码和BIG5码等。1.2.4 非数值数据的表示34Unicode码是目前用来解决 ASCII 码 256 个字符限制问题的一种比较流行的解决方案。Unicode码通过用双字节来表示一个字符,有65536个编码,为每个字符提供了与平台、与程序设计语言无关的一个唯一数字。1.2.4 非数值数据的表示353多媒体信息图形、图像、音频和视频信息等媒体信息都是通过二进制编码表示的。结束