【教材】第二章 数据的存储与运算《计算机基础与程序设计》广东普通专升本

第二章
数据的存储与运算
一、数据在计算机中是如何存储的
知识点1:数据在计算机中是以二进制进行存储的
(1)二进制数转换成十进制数:
(2)十进制数转换后二进制数
①整数转换:整数转换用除2取余法。
例:将(57)10转换为二进制数

②小数转换:小数转换用乘2取整法。

知识点2:位、字节和地址
(1)位(bit)
位(bit):位是计算机的最小存储单位,简写为“b” ,表示二进制中的一位。位也称为“比特”,
是bit的音译。一个二进制位只能表示两种状态,即只能存放二进制数“0”或“1”。
(2)字节(Byte)
字节(Byte):字节是计算机的最小存储单元,也是处理数据的基本单位,简写为“B”,表示二进制
中的8位,即lB=8b。
(3)地址
操作系统把所有存储单元以字节为单位编号,如图所示:


④字符串常量,字符串常量是双撇号中的全部字符;
⑤符号常量,用#define 指令,指定用一个符号名称代表一个常量。
(2)变量
变量是指在程序运行过程其值可以改变的量
①变量名
变量名就是以一个容易记忆的名字代表一个存储的地址
②变量地址

注意:变量名和变量的值是不同的概念
(3)变量名取名规则
①变量名只能由字母,数字,下划线组成
②第一个字符必须是字母或者下划线啊
③大小写字母代表不同的字符
④变量名的长度不是无限的
⑤变量名尽量简单易记,见名知意
⑥在同一程序的同一函数中,不同的变量不能取相同的变量名,以免混淆
(4)变量必须‘先定义,后使用’
知识点2:数据类型
C 语言允许使用的类型,如图 2-1 所示,图中有*的是 C99 所增加的。

知识点3:整型数据
整型数据常见的存储空间和值的范围如表 2-1 所示。

知识点4:字符型数据
(1)字符与字符代码
常用的字符与字符代码如表 2-2 所示。
(2)字符变量
字符变量是用类型符 char 定义字符变量。字符类型型也属于整型,也可以用 signed 和 unsigned 修饰
符。字符型数据的存储空间和值的范围见表 2-3。

知识点5:浮点型数据
浮点型数据的有关情况如表 2-4 所示。

知识点6:怎样确定常量的类型
从常量的表示形式即可以判定其类型。对于字符常量很简单,只要看到由单撇号括起来的单个字符或转
义字符就是字符常量。对于数值常量按以下规律:
(1)整型常量
不带小数点的数值是整型常量,但应注意其有效范围。
(2)浮点型常量
凡以小数形式或指数形式出现的实数,是浮点型常量,在内存中都以指数形式存储。
三、运算符和表达式
知识点1:C 运算符
除了算术运算符外,C 还提供其他运算符,共有以下类别:
①算术运算符(+ - * / % ++ --)
②关系运算符(> < == >= <= !=)
③逻辑运算符(! && ||)
④位运算符(<< >> ~ | ∧ &)
⑤赋值运算符(=及其扩展赋值运算符)
⑥条件运算符(?:)
⑦逗号运算符(,)
⑧指针运算符(*和&)
⑨求字节数运算符(sizeof)
⑩强制类型转换运算符((类型))
⑪成员运算符(. ->)
⑫下标运算符([])
⑬其他(如函数调用运算符())
知识点2:基本的算术运算符
基本的算术运算符见表 2-5。

知识点3:自增、自减运算符
++i,--i:在使用 i 之前,先使 i 的值加(减)1;
i++,i--:在使用 i 之后,使 i 的值加(减)1。
知识点4:算术表达式和运算符的优先级与结合性
C 算术表达式是指将运算对象通过算术运算符和括号连接起来的、符合 C 语法规则的表达式。其中算
术运算符是自左至右,赋值运算符是自右至左的。
知识点5:不同类型数据间的混合运算
(1)int 型、float 与 double 型数据进行运算,则全部转化为 double 类型;
(2)字符(char)型数据与整型数据进行运算,就是把字符的 ASCII 代码与整型数据进行运算。
知识点6:强制类型转换运算符
(1)系统自动进行的类型转换;
(2)强制类型转换。 四、原码、反码、补码
知识点1:原码、反码、补码
(1)原码:正数的符号位用0表示,负数的符号位用1表示,有效值部分用二进制绝对值表示,这种
表示法称为原码。
(2)反码:正数的反码和原码相同,负数的反码是对该数的原码除符号位外各位取反,即“0” 变
“1” , 变 “0”。
(3)补码:正数的补码和原码相同,负数的补码是其反码加1。 五、位运算
知识点1:按位与运算
按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位
均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下:

可见9&5=1。
按位与运算通常用来对某些位清 0 或保留某些位。例如把a 的高八位清 0 ,保留低八位,可作a&255 运
算( 255 的二进制数为 0000000011111111)。

知识点2:按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二
进位有一个为 1 时,结果位就为 1。参与运算的两个数均以补码出现。
例如:9|5 可写算式如下:

知识点3:按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为 1。参与运算数仍以补码出现,例如 9^5 可写成算式如下:

知识点4:求反运算
求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反。
例如~9 的运算为:
~(0000000000001001)结果为:1111111111110110
知识点5:左移运算
左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<” 右边的数指定移动的位数,高位丢弃,低位补 0。
例如:
a<<4
指把a 的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。
知识点6:右移运算
右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>” 右边的数指定移动的位数。
例如:
设 a=15,
a>>2
表示把 000001111 右移为 00000011(十进制 3)。
应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时,最高位补0,而为负数
时,符号位为 1,最高位是补 0或是补1 取决于编译系统的规定。TurboC 和很多系统规定为补1。

