顺序程序设计

 2023-03-31 19:20:59  阅读 0

常量和变量

在计算机高级语言中,数据有两种表现形式:常量和变量。

常量

在程序运行过程中,其值不能被改变的量称为常量。数值常量就是数学中的常数。

整型常量

如1000 ,145, 0,-100,25等都是整型常量。

实型常量

1.十进制小数形式,由数字和小数点组成。如123.456,0.345,-56.78等。 

2.指数形式。如12.3e5,-65E9等。E或e前后必有数,E或e后面必为整数。

字符常量

1.用单撇号括起来的一个字符,比如  ‘a’,‘A’,‘3’,‘?‘,’#’,不能写成‘ab’或者‘AB’。
请注意单撇号只是界限符,字符常量只能是一个字符,不包括单撇号。字符常量存储在计算机存储单元中时,并不是存储字符。而是以其代码(一般用ASCII码)存储的。ASCII码如下:

2.转义字符。除了以上形式的字符常量外,c语言还允许用一种特殊形式的字符,常量就是以字符‘\’开头的字符序列。以下为转义字符及其作用:

3.字符串常量。用双撇号可以把若干个字符括起来,字符串常量是双撇号中的所有字符,但不包括双撇号本身。

整型数据

1.整型数据的分类

本节介绍最基本的整型类型。

(1)基本整型(int型)

编译系统分配给int型数据2个字节或4个字节(由具体的C编译系统自行决定)。如Turbo C 2.0为每一个整型数据分配2个字节(16个二进位),而Visual C++为每一个整型数据分配4个字节(32位)。在存储单元中的存储方式是:用整数的补码(complement)形式存放。一个正数的补码是此数的二进制形式,如5的二进制形式是101,如果用两个字节存放一个整数,则在存储单元中数据形式如图3.5所示。如果是一个负数,则应先求出负数的补码。求负数的补码的方法是:先将此数的绝对值写成二进制形式,然后对其所有二进位按位取反,再加1。如-5的补码见图3.6。

5的补码

0 0 0 0 0 0 0 0

0 0 0 0 0 1 0  1

图   3.5

5的原码

0 0 0 0 0 0 0 0

0 0 0 0 0  1 0  1

(a)

按位取反

1

1

1

'

1

'

1

1

1

1  1  1  1  0  1  0

(b)

再加1

1

1

1

(-5的补码)

1

1

1    1  1  0   1   1

(c)

图   3.6

在存放整数的存储单元中,最左面一位是用来表示符号的。如果该位为0,表示数值为正;如果该位为1,表示数值为负。

有关补码的知识不属本书范围,在此不深入介绍,如需进一步了解,可参考有关计算机原理的书籍。

说明:如果给整型变量分配2个字节,则存储单元中能存放的最大值为01111111111111111,第1位为0代表正数,后面15位为全1,此数值是( ( 2¹ ⁵-1) , 即十进制数32767。最小值为1000000000000000,此数是 —2¹ ⁵, 即-32768。因此一个整型变量的值的范围是-32768~32767。超过此范围,就出现数值的“溢出”,输出的结果显然不正确。如果给整型变量分配4个字节 (Visual C++), 其能容纳的数值范围为-2³¹∼(2³¹-1),即-2147483648~2 147483  647。

(2)短整型(short int)

类型名为short int或short。如用Visual C++,编译系统分配给int数据4个字节,短整型2个字节。存储方式与int型相同。一个短整型变量的值的范围是-32768~32767。

(3)长整型(long int)

类型名为long int或long。Visual C++对一个long型数据分配4个字节(即32位),因此long int型变量的值的范围是-2³¹∼(2³¹-1),即-2147 483 648~2147483 647。

(4)双长整型(long long int)

类型名为long long int或long long,一般分配8个字节。这是C99新增的类型,但许多C编译系统尚未实现。

说明:C标准没有具体规定各种类型数据所占用存储单元的长度,这是由各编译系统自行决定的。C标准只要求long型数据长度不短于int型,short型不长于int型。即

sizeof(short)≤sizeof(int)≤sizeof(long)

sizeof是测量类型或变量长度的运算符。在Turbo C 2.0中,int型和short型数据都是2个字节(16位),而long型数据是4个字节(32位)。在VisualC++中,short数据的长度为2字节,int数据的长度为4字节,long数据的长度为4字节。通常的做法是:把long定为32位,把short定为16位,而int可以是16位,也可以是32位,由编译系统决定。读者应了解所用系统的规定。在将一个程序从A系统移到B系统时,需要注意这个区别。例如,在A系统,整型数据占4个字节,程序中将整数50000赋给整型变量price是合法的、可行的。但在B系统,整型数据占2个字节,将整数50000赋给整型变量price就超过整型数据的范围,出现“溢出”。这时应当把int型变量改为long型,才能得到正确的结果。

2.整型变量的符号属性

以上介绍的几种类型,变量值在存储单元中都是以补码形式存储的,存储单元中的第1个二进位制代表符号。整型变量的值的范围包括负数到正数(见表3.2)。

表3.2   整型数据常见的存储空间和值的范围(Visual C++的安排)

类型 字节数 取值范围

int(基本整型) 4 -2147483648~2147483647,即- -2³¹~(2³¹-1)

unsigned int(无符号基本整型) 4 0~4294967295,即0~(2³²-1)

short(短整型) 2 -32768~32767,即· -2¹⁵~(2¹⁵-1)

unsigned short(无符号短整型) 2 0~65535,即0~(2¹⁶-1)

long(长整型) 4 -2147483648~2147483647,即-2³¹~(2³¹-1)

unsigned long(无符号长整型) 4 0~4294967295,即0~(2³²-1)

long long(双长型) 8 -9223372036854775808~9223372036854775807 即-2⁶³~(2⁶³-1)

unsigned long long (无符号双长整型) 8 0~18446744073709 551615,即0~(2⁶⁴-1)

在实际应用中,有的数据的范围常常只有正值(如学号、年龄、库存量、存款额等)。为了充分利用变量的值的范围,可以将变量定义为“无符号”类型。可以在类型符号前面加上修饰符unsigned,表示指定该变量是“无符号整数”类型。如果加上修饰符signed,则是“有符号类型”。因此,在以上4种整型数据的基础上可以扩展为以下8种整型数据:

flout 3 2  -3 .4 ×1 0 8 ~3 、4 0 ×1 0 3 8 (7位有效数字).

以上就是今天分享的全部内容。

下一篇: 顺序程序设计
标签:

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码