C语言程序的基本构成要素包括:字符集、标识符、保留字、常量、变量、运算符等。每种程序设计语言都规定了书写源程序时允许使用的特定的字符集。·数字:0~9共10个。在其他地方出现时,只起间隔作用,编译程序对它们忽略不计。......
2023-11-20
数据是指能够输入计算机并被计算机处理的数值、字母、符号的集合。数据表示是指计算机能够辨认并进行存储、传送和处理数据的表示方法。在计算机语言中,常用的数据表示形式有二进制、八进制、十进制、十六进制。但计算机内部的指令只能用二进制表示。要想将其他进制数据转换成二进制数据,就需要用到编码转换。编码转换分为数值编码转换和非数值编码转换。
1.1.2.1 数值编码表示
1.十进制
十进制有0~9共10个数码,其计数特点以及进位原则是“逢十进一”。十进制的基数是10,位权为10K(K为整数,以小数点为起点,小数点左边的整数部分第一位K为0,第二位为1,以此类推;小数点右边的小数部分第一位为-1,第二位为-2,以此类推)。一个十进制数可以写成以10为基数按位权展开的形式。
例:把十进制数123.45按位权展开。
解:(123.45)10=1×102+2×101+3×100+4×10-1+5×10-2
2.二进制
二进制只有0和1两个数码,它的计数特点及进位原则是“逢二进一”。二进制的基数为2,位权为2K(K为整数)。一个二进制数可以写成以2为基数按位权展开的形式。
例:把二进制数1011.101按位权展开。
解:(1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3
3.八进制
八进制中有0~7共8个数码,其计数特点及进位原则是“逢八进一”。八进制的基数为8,位权为8K(K为整数)。
例:把八进制数1234.67按位权展开。
解:(1234.67)8=1×83+2×82+3×81+4×80+6×8-1+7×8-2
4.十六进制
十六进制有0~9及A、B、C、D、E、F共16个数码,其中A~F分别对应十进制数的10~15。十六进制计数特点及进位原则是“逢十六进一”。十六进制的基数为16,位权为16K(K为整数)。
例:把十六进制数A1234按位权展开。
解:(A1234)16=A×164+1×163+2×162+3×161+4×160
1.1.2.2 数值编码的转换
1.十进制数转换为R进制数
十进制数转换为R进制数需要将整数部分和小数部分单独转换。
整数部分的转换方法:以短除法的形式,采用除R取余的逆序,获得R进制数。下面以十进数年制转换为二进制数为例。如图1.1所示,将(236)10转换为二进制,得到的二进制结果为(11101100)2。同样的道理,如果想将十进制数转换为八进制数,只需要把除以2改为除以8即可,其他进制以此类推。
图1.1 短除法
2.R进制数转换成十进制数
用按权展开法:把一个任意R进制数anan-1…a1a0.a-1a-2…a-m转换成十进制数:
an×Rn+an-1×Rn-1+…+a1×R1+a0×R0+a-1×R-1+a-2×R-2+…+a-m×R-m
其十进制数值为每一位数字与其位权之积的和。(www.chuimin.cn)
例如:
(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2=(5.75)10
(2017.1)8=2×83+0×82+1×81+7×80+1×8-1=(1039.125)10
(3C03)16=3×163+12×162+0×161+3×160=(15363)10
3.二进制数和八进制数互换
二进制数转换成八进制数时,只需从小数点位置开始,向左或向右将每3位二进制划分为一组(不足3位时,整数部分向前补0,小数部分向后补0),然后写出每一组二进制数所对应的八进制数码即可。为什么是3位数为一组呢?因为23=8。
例:将二进制数(10110001.111)转换成八进制数:
010 110 001.111
2 6 1 7
即二进制数(10110001.111)转换成八进制数是(261.7)。反过来,将每位八进制数分别用3位二进制数表示,就可完成八进制数向二进制数的转换。
4.二进制数和十六进制数互换
二进制数转换成十六进制数时,只需从小数点位置开始,向左或向右将每4位二进制划分为一组(不足4位时,整数部分向前补0,小数部分向后补0),然后写出每一组二进制数所对应的十六进制数码即可。
例:将二进制数(11011100110.1101)转换成十六进制数:
0110 1110 0110.1101
6 E 6 D
即二进制数(11011100110.1101)转换成十六进制数是(6E6.D)。反过来,将每位十六进制数分别用4位二进制数表示,就可完成十六进制数向二进制数的转换。
5.八进制数、十六进制数和十进制数的转换
这三者转换时,可把二进制数作为媒介,先把被转换的数转换成二进制数,然后将二进制数转换成要求转换的制数形式。
1.1.2.3 非数值编码的转换
我们向计算机输入的字符、数字、字母等,都需要经过编码产生二进制数,才能被计算机识别。常见的非数值信息编码有:
1.美国标准信息交换码(ASCII)
ASCII码是用一个7位二进制数编码,并采用8位二进制数来表示,其最高位均为0。7位二进制数总共可编出27=128个码。其中,数字0~9、大写字母A~Z、小写字母a~z分别按其本来的顺序连续编码。它们的ASCII码按从小到大的顺序依次是:数字<大写字母<小写字母,如表1.1所示。
表1.1 美国标准信息交换码ASCII
2.汉字编码
汉字编码包括国标码、区位码和机内码。国标码的每个汉字用两个字节表示,每个字节的最高位为0;区位码用一个94行94列的二维代码表来表示汉字,两个字节分别用两位十进制编码,前字节的编码称为区码,后字节的编码称为位码;机内码将国标码所用两个字节最高位置为1。
有关C语言程序设计 第2版的文章
C语言程序的基本构成要素包括:字符集、标识符、保留字、常量、变量、运算符等。每种程序设计语言都规定了书写源程序时允许使用的特定的字符集。·数字:0~9共10个。在其他地方出现时,只起间隔作用,编译程序对它们忽略不计。......
2023-11-20
这三种整型数据类型都可以指定为“有符号”或“无符号”,如果既不指定为signed,也不指定为unsigned,则默认为signed。归纳起来,整型数据分为以下6种,如表2.1所示。表2.1整型数据类型表2.1中“类型”列中的方括号部分是可以省略的,如signed short int与short等价。例如:int a,b,c,d;unsigned e;long f,g;在程序中,一个int型变量最大允许值为32767,要防止数据的溢出。......
2023-11-18
项目2:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。图3.15兔子问题输出结果根据以上的分析可以知道,循环次数可以为0,因此该程序是一个条件型循环,可以利用while语句编写程序。熟悉了循环结构在程序设计中的运用,循环结构语句包含了while语句、do…......
2023-11-18
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
C语言把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算,功能强大。另外,C语言还把括号、下标、强制类型转换、取地址等都作为运算符处理,并通过与算数运算符的组合达到不同的目的,从而使程序更加简洁明了。C语言具有超强的可移植性。总之,C语言在运算符方面是比较容易让人混淆的。......
2023-11-18
函数fwrite的功能则是将内存储器中指定区域的数据块写入与文件指针stream相关联的文件中。将一个5×10的整型二维数组数据存入指定文件中。编写程序实现功能:将例7.10所创建文件中的数据读出,并将数据按5行10列的矩阵形式进行显示。由于要接收从文件中读出的二维数组数据,程序中需要定义构成方式与之对应的二维数组。......
2023-11-20
机器语言由0和1两个字符组成,称为二进制数。指令是计算机语言的最小组成单元,机器语言就是机器指令的集合。对人而言,不管是机器语言还是汇编语言,可读性都差,一般的人也难以理解,不利于计算机语言的推广普及。当然,计算机不能直接识别用高级语言编写的源程序,需要通过编译器将其翻译成机器语言产生目标程序,才能被计算机执行。......
2023-11-18
相关推荐