《2022年第一章C语言基础知识.docx》由会员分享,可在线阅读,更多相关《2022年第一章C语言基础知识.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思第一章 C语言基础学问考点 1 C语言程序的结构熟悉本节通过一个简洁的 c 程序例子,介绍 c 语言的基本构成、格式、以及良好的书写风格,使读者对 c 语言有个初步熟悉;例 1 运算两个整数之和的 c 程序:#include main int a,b,sum; /* 定义变量 a,b,sum 为整型变量 */ a=20; /* 把整数 20 赋值给整型变量 a*/ b=15; /* 把整数 15 赋值给整型变量 b*/ sum=a+b; /* 把两个数之和赋值给整型变量 sum*/ printf“a=%d,
2、b=%d,sum=%d ,a,b,sum;/* 把运算结果输出到显示屏上 */ 重点说明:1、任何一个 c 语言程序都必需包括以下格式:main 任何一个程序都必需包含这个机构;括号内可以不写任何内容,那这是 c 语言的基本结构,么该程序将不执行任何结果;2、main- 在 c 语言中称之为 “主函数 ”,一个 c 程序有且仅有一个 main 函数,任何一个 c程序总是从 main 函数开头执行,main 函数后面的一对圆括号不能省略;3、被大括号 括起来的内容称为main 函数的函数体, 这部分内容就是运算机要执行的内容;4、在 里面每一句话后面都有一个分号(;),在 c 语言中,我们把以一
3、个分号结尾的一句话叫做一个 c 语言的语句,分号是语句终止的标志;5、printf“a=%d,b=%d,sum=%d ,a,b,sum; -通过执行这条 c 语言系统供应应我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果:a=20,b=15,sum=35 6、#include 留意:(1)以 #号开头(2不以分号结尾这一行没有分号,所以不是语句,在 c 语言中称之为命令行,或者叫做“预编译处理命令”;7、程序中以 /* 开头并且以 */ 结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置, 为了提高程序的可读性而添加,但运算机在执行主函数内容时完
4、全忽视注释部分,换而言之就是运算机当做注释部分不存在于主函数中;考点 2 C程序的生成过程C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,如下列图;编译过程名师归纳总结 - - - - - - -第 1 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思源程序的扩展名为.c ,目标程序的扩展名为.obj , 可执行程序的扩展名为.exe ;考点 3 标识符在编写程序时,必需为函数、变量等命名,这个名字称为标识符;就如下:1、标识符只能由字母、数字、下划线组成;2、标识符的第一个字母必需是字母和下划线;3、标识符区分大小写字
5、母,如 If 和 if 是两个完全不同的标识符;合法标识符如下:A6, b_3 , _mn 非法的标识符如下:ab#12 , 8m , tr3:4 , yes no C语言中标识符的命名规标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C语言库函数相同, 在程序中各种标识符尽量不要重复,以便区分;挑选变量名和其他标识符时,应留意 做到 “ 见名知义 ”;标识符分为如下三类:1、关键字关键字是具有特定含义的,特地用来说明c 语言特定成分的一类标识符,不能用作用户的标识符;auto break case char union do double else enum extern
6、 goto if int long short signed static sizof struct switch unsigned void for while 名师归纳总结 - - - - - - -第 2 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思typedef continue float return typedef default 2、预定义标识符预定义标识符在c 语言中也有特定的含义,但可以用作用户标识符,预定义标识符分为两类:(1)、库函数名字,比如(printf ,scanf,sin,isdigit 等)(2)、编
7、译处理命令名,比如(define,include )3、用户标识符用户依据需要自己定义的标识符称为用户标识符;无论如何自定义标识符,都必需符合标识符的三条命名规章;考点 4 常量在程序运行中,其值不能被转变的量称为常量;常量有 符常量、字符串常量和符号常量;(一)数值转换 数字的四种表现形式:5 种类型:整型常量、实型常量、字l 二进制:全部数字由0,1 构成,逢二进一,二进制数中不会显现2.;例: 110101 l 八进制:以数字0(留意不是以字母O,o)开头,全部数字由07 构成,逢八进一,八进制数中不会显现8;例: 0112,0123,077 等l 十进制:全部数字由09 构成,逢十进一
8、,十进制数中不会显现10;例: 0,12,-15 等l 十六进制:以 0x 或者 0X(数字 0 加字母 x开头 ,全部数字由 09,AF或者 af构成,逢十六进一(其中 A、B、C、D、E、 F分别代表 10、 11、12、13、14、15)例: 0x4A 0X14c7等在运算机内部, 数字均以二进制形式表示和存放,用户输入的一般十进制数字都要被运算机转换成二进制才能在运算机内部储备,同样运算机的运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由运算机自动实现;(1)将十进制转换二进制、八进制和十六进制除法:将十进制数除以 2,记录余数,得到的商连续除以 2,直到商
9、为 0,然后将各次相处所得的余数从后往前逆序排列,所得余数数字序列就是该十进制数对应的二进制数;八进制和十六进制转换方法同上;例:十进制数13 转换成二进制数的值为1101,转换八进制为015,转换成十六进制为D. 2将二进制、八进制和十六进制转换成十进制乘积求和:将二进制的每一位从低位到高位(右边为低位,左边为高位)分别乘以20,21,22;,然后将这些积求和;名师归纳总结 - - - - - - -第 3 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思例如:(1101)2=(13)10 ( 317)8=(207) 10 (23E16
10、=57410 3二进制与八进制、十六进制数之间的相互转换 二进制转八进制:从右往左每三位一组转换成十进制数,将所得数据组合就是对应的八进制数(留意:高位不足三位补零);例:(010 110 111)2=(267)8 二进制转十六进制:从右往左每四位一组转换成十进制数,将所得数据组合就是对应的十六进制数(留意:高位不足四位补零);例:(0101 1011)2=( 5B16 八进制转化二进制:每一位数字转换为三位二进制数字例:(13)8=(001 011)2=(1011)2 (留意:去掉前面的两个 00,由于 0 在高位没有意义) 十六进制转化二进制:每一位数字转换为四位二进制数字例:(E316=
11、1110 00112 (二)整型常量整型常量有 3 种形式:十进制整型常量、八进制整型常量和十六进制整型常量;(留意: c 语言中没有直接表示二进制的整型常量,在 c 语言源程序中不会显现二进制;)书写方式如下:十进制整型常量:123 , 0 ,-24 , 85L(长整型常量)等八进制整型常量:051 ,-026 ,0773 等十六进制整型常量:0x55 , 0x1101 , 0x , 0x5AC0 , -0xFF;其中 L 为长整型;(三)实型常量实型常量有两种表示形式:小数形式和指数形式;小数形式: 5.4 0.074 -23.0 指数形式: 5.4e0 4.3e-3 -3.3e4 (1)
12、小数部分为0 的实型常量,可以写为453.0 或 453;(2)用小数表示时, 小数点的两边必需有数,“453.0 “不能写成 “ .453 “和“ 453. “,而应当写成 “ 0.453 “和(3)用指数写法时,e 前必需有数字, e 后面的指数必需为整数(留意:整数阶码可以是正数,负数,也可以是八进制数、十六进制数,但必需为整数);(四)字符常量字符常量的标志是一对单引号,c 语言中的字符常量有两类:和 A 是两个不同的字符常(1)由一对单引号括起来的一个字符,如a , ;留意 : #量;(2)由一对单引号括起来,以反斜杠 开头,后跟如干数字或者字母,比如 n,其中 “ “是转义的意思
13、,后面跟不同的字符表示不同的意思,这类字符常量叫转义字符;具体如下列图;转义字符转义字符的意义ASCII码名师归纳总结 - - - - - - -第 4 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思n 回车换行10 t 横向跳到下一制表位置9 b 退格8 r 回车13 f 走纸换页12 反斜线符 92 单引号符39 ”双引号符34 a 鸣铃7 ddd 13 位八进制数所代表的字符 xhh 12 位十六进制数所代表的字符(五)字符串常量C语言中,以双引号括起来的,由如干个字符组成的序列即为字符串常量;例: “ ni hao ” “ ha
14、ppy”等等;(六)符号常量符号常量是由宏定义“ #define “定义的常量,在C程序中可用标识符代表一个常量;例:运算圆的面积的c 程序;#include #define PI 3.14159 main float r,s; r=12.5; 名师归纳总结 - - - - - - -第 5 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思S=PI *r*r; printf“s= %f ”,s; 说明:#define 是宏定义, 有关宏定义在以后的章节中具体说明,此程序中全部显现PI 的地方都代表 3.14159,同时 PI 称为符号常量
15、;习惯上我们用大写字母来表示符号常量,小写字母表示 变量,这样比较简洁区分;考点 5 变量变量就是其值可以转变的量;变量要有变量名,在内存中占据肯定的储备单元,储备单元里存放的是该变量的值;不同类型的变量其储备单元的大小不同,变量在使用前必需定义;(一)整型变量 整型变量分为 4 种:基本型 int 、短整型 short int 或 short、长整型 long int 或 long和无符 号型 unsigned int ,unsigned short ,unsigned long ;不同的编译系统对上述四种整型数据所占用的位数和数值范畴有不同的规定;类型说明符 字节 数值范畴 字符型char
16、 1 C字符集 基本整型int 2 -3276832767 短整型short int 2 -3276832767 长整型long int 4 -214783648214783647 无符号型 unsigned 2 065535 无符号长整型unsigned long 4 名师归纳总结 - - - - - - -第 6 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思04294967295 单精度实型float 4 3/4E-383/4E+38 双精度实型double 8 1/7E-3081/7E+308 说明:单词 signed 来说明
17、“有符号 ”(即有正负数之分) ,不写 signed 也隐含说明为有符号,unsigned 用来说明 “无符号 ”(只表示正数) ;(二)实型变量C语言中,实型变量分为单精度类型float a , b ; double m ; 在 vc 中, float 型数据在内存中占 float 和双精度类型 double 两种;如 : 4 个字节 32 位,double 型数据占 8 个字节;单精度实数供应 7 位有效数字,双精度实数供应1516 位有效数字;实型常量不分float 型和 double型,一个实型常量可以赋给一个 中相应的有效数字;float 型或 double 型变量, 但变量依据其类
18、型截取实型常量留意: 实型变量只能存放实型值,不能用整型变量存放实型值,也不能用实型变量存放整型值;(三)字符变量字符变量用来存放字符常量,定义形式:char 变量名;其中关键字 char 定义字符型数据类型,占用一个字节的储备单元;例: char cr1,cr2; cr1= A , cr2=B将一个字符赋给一个字符变量时,并不是将该字符本身储备到内存中,而是将该字符对应的ASCII码储备到内存单元中;例如,字符A 的 ASCII码为 65,在内存中的存放形式如下:01000001 由于在内存中字符以 ASCII码存放,它的储备形式和整数的储备形式类似,所以 C语言中字符型数据与整型数据之间可
19、以通用,一个字符能用字符的形式输出,也能用整数的形式输出,字符数据也能进行算术运算,此时相当于对它们的 ASCII码进行运算;考点 6 类型的自动转换和强制转换当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算;转换优先级为:char int float =,= 三类共十一种;3、逗号运算符 :用于把如干表达式组合成一个表达式 ,;4、关系运算符 :用于比较运算;包括大于 、小于 =、小于等于 & 、或 | 、非 .三种;6、条件运算符 :这是一个三目运算符,用于条件求值 .:;7、位操作运算符 :参加运算的量,按二进制位进行运算;包括位与 &、位或 | 、位非
20、、位异或 、左移 六种;8、指针运算符 :用于取内容 * 和取地址 &二种运算;9.、求字节数运算符:用于运算数据类型所占的字节数sizeof;10、特殊运算符 :有括号 ,下标 ,成员 ,.等几种;另外, 按参加运算的对象个数,C语言运算符可分为:单目运算符如 !、双目运算符如+,- 和三目运算符如 . : ;考点 8 算术运算符和算术表达式一、基本的算术运算符(1)+加法运算符或正值运算符,如 2+5;(2)-减法运算符或负值运算符,如 4-2;(3)* 乘法运算符,如 3*8 ;(4)/ 除法运算符,如 11/5;/ 的运算分为两种情形:a、“ 除”的左右两边都为整数时,所得结果必定是整
21、数(留意:仅取整数部分,不是四舍五入)比如: 5/2 的值为 2,不是 2.5,1/2 的值为 0;b、“除”的左右两边至少有一个是实型数据(即小数)时,所得结果为实型数据;比如: 5/2.0 的值为 2.5,7.0/2.0 的值为 3.5. 名师归纳总结 (5)%模运算符或称求余运算符,%两侧均应为整型数据,如9%7 的值为 2;第 8 页,共 14 页需要说明的是:当运算对象为负数时,所得结果随编译器不同而不同,在vc 中,结果的符号与被除数相同,比如:13%-2 值为 1,而 -15%2 值为 -1. - - - - - - -精选学习资料 - - - - - - - - - 读书之法
22、,在循序而渐进 ,熟读而精思二、算术表达式和运算符的优先级与结合性算术表达式是用算术运算符和括号将运算量也称操作数 连接起来的、符合C语言语法规章的表达式;运算对象包括函数、常量和变量等;在运算机语言中, 算术表达式的求值规律与数学中的四就运算的规律类似,其运算规章和要 求如下;1在算术表达式中,可使用多层圆括号,但括号必需配对;运算时从内层圆括号开头,由 内向外依次运算各表达式的值;2在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,如表达式中运算符的优先级相同,就按运算符的结合方向进行运算;3假如一个运算符两侧的操作数类型不同,就先利用自动转换或强制类型转换,使两
23、者具 有相同类型,然后进行运算;三、自增自减运算符作用:使变量的值增 1 或减 1;如: +i,-i 在使用 i 之前,先使 i 的值加 1、减 1;i+,i- 在使用 i 之后,使 i 的值加 1、减 1;1只有变量才能用自增运算符+和自减运算符-,而常量或表达式不能用,如10+或x+y+都是不合法的;2+和-的结合方向是 “自右向左 “ ,如 -i+ ,i 的左边是负号运算符,右边是自增运算符,负号运算和自增运算都是“自右向左 “结合的,相当于-i+;在循环语句中常用到自增(减)运算符,在指针中也常用到该运算符,考生要弄清晰“ i+ ”和“ +i ”及“ i-”和“ -i ”的区分 ,特殊
24、弄清晰表达式的值和变量的值;例:变量 n 的初始值为 2,就表达式类型i+ +i i- -i n 值为 2 时各表达式的值 2 3 2 1 经过各表达式运算后变量 n 的值变化为3 3 1 1 例:有以下程序#include stdio.h main int m=12,n=34 ;名师归纳总结 - - - - - - -第 9 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思printf%d %d ,m+,+n;/* 输出表达式 m+和表达式 +n 的值 */ printf%d %d ,+m,n+;/* 输出表达式 +m 和表达式 n+的
25、值 */ printf%d %d ,m,n ;/* 输出 m 、n 的值 */ 程序运行后的输出结果是_ B. 12 35 14 35 14 36 A12 35 13 35 14 36 C12 35 14 36 14 36 D. 12 35 14 35 14 35 解析: 自增自减运算需要留意区分表达式的值和变量的值,运算,表达式和变量变化如下:执行语句前的值m n 执行语句后m n 12 34 m+表达式值 12 +n 表达式值 35 13 35 13 35 +m 表达式值 14 n+表达式值 35 14 36 14 36 14 36 考点 9 赋值运算符与赋值表达式一、赋值运算符与赋值表达
26、式表达式运算后, 变量会自增自减赋值符号“ =“就是赋值运算符, 作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式;一般形式为:名师归纳总结 变量名= 表达式第 10 页,共 14 页- - - - - - -精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思在程序中可以多次给一个变量赋值,每赋一次值, 与它相应的储备单元中的数据就被更新一次,内存中当前的数据就是最终一次所赋值的那个数据;例: a=12; 此表达式读作 “ 将 10 的值赋值给变量a” ;说明:a、假如赋值号两边的运算对象类型不一样,系统会
27、自动进行类型转换,转换的规章:将赋 值号右边表达式的值的类型转换成赋值号左边变量的类型,例: int y=3.5; 在变量 y 中最终储备的是整数3;b、 可以将复制表达式的值再赋值给变量,形成连续赋值;例如: x=y=25 是一个连续赋值表达式,x=y=25 等价于x=(y=25),所以表达式x=y=25 最终的值为 25 ;二、复合的赋值运算符在赋值运算符之前加上其他运算符可以构成复合赋值运算符;算符是: +=,-=,*= , /=,%= ;其中与算术运算有关的复合运两个符号之间不行以有空格,复合赋值运算符的优先级与赋值运算符的相同;表达式 n+=1等价于 n=n+1,作用是取变量 n 中
28、的值增 1 再赋给变量 n,其他复合的赋值运算符的运算规章依次类推;如求表达 a+=a-=a*a 的值 ,其中 a 的初值为 12 ;步骤:(1)先进行 “ a-=a*a“ 运算,相当于 a=a-a*a=12-144=-132 ;(2)再进行 “ a+=-132“ 运算,相当于考点 10 逗号运算符和逗号表达式a=a+-132=-132-132=264 ;在 c 语言中,逗号除了作为分隔符,仍可以用作一种运算符-逗号运算符,用逗号运算符将几个表达式连接起来,例如 一般形式为:a=b+c,a=b*c 等称为逗号表达式;表达式 1 ,表达式 2 ,表达式 3 , ,表达式 n 例: x=2,y=3
29、,z=4 逗号表达式具有从左至右的结合性,即先求解表达式 1,然后依次求解表达式 2,直到表达式 n 的值;表达式 n 的值就是整个逗号表达式的值;上述的逗号表达式的值就是表达式 z=4的值 4.需要留意的是,逗号运算符是全部运算符中级别最低的;例:有如下程序段:main int a=2,b=4,c=6,x,y; y=x=a+b,b+c; printfy=%d,x=%d,y,x; 程序显示结果为:y=6,x=6 争论:将 y=x=a+b,b+c;改为 y=x=a+b,b+c 的程序结果?考点 11 关系运算符和关系表达式名师归纳总结 一、C语言中的规律值第 11 页,共 14 页- - - -
30、 - - -精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思C语言中的规律值只有两个:真(true和假( flase;用非零代表真,用零代表假;因此,对于任意一个表达式,假如它的值为零,就代表一个假值,假如它的值为非零,就代表一个真值;只要值不是零,不管是正数,负数,整数,实数,都代表一个真值;例如-5 的规律值为真;二、关系运算符及其优先次序C语言供应了 6 种关系运算符,见表优先级优先级相同(高)优先级相同(低)关系运算符、=、= =等于)、!=(不等于)由两个字符组成的运算符之间不行以加空格,关系运算符都是双目运算符;1结合性:自左向右;2优先次序
31、:前 4 种关系运算符 ,=, 的优先级别相同,后两种 =,.=优先级相同,且前 4 种优先级高于后两种;关系运算符的优先级低于算术运算符,高于赋值运算符;三、关系表达式由关系运算符连接而成的表达式称为关系表达式;例如: ab,(a=7b=10等都是合法的关系表达式;关系表达式的结果有两个:0 和 1,;其中 0 表示假, 1 表示真;假如关系表达式成立,就值为真,假如关系表达式不成立,就值为假;例:变量 a 的值为 5,b 的值为 6,那么关系表达式ab 的值为假,即为0.而关系表达式(a=13b=10的值为真,即为1;当关系运算符两边值的类型不一样时,化为实型数,然后再进行比较;考点 12
32、 规律运算符和规律表达式 一、规律运算符及其优先级如一边是整型, 一边是实型, 系统将自动把整型数转语言供应了 3 种规律运算符,如下表;优先级由高到低规律运算符!(规律非)高于& (规律与)高于 (规律或)说明:名师归纳总结 “&”和“| ”是双目运算符,要求要有两个操作数,而“ !”是单目运算符,只要求有一个操作第 12 页,共 14 页数即可;以上规律运算符的优先级是:“ . ” 规律非 级别最高,其次是“ &” 规律与 ,“ | ” 辑或 级别最低,规律运算符中的“ &”和“ | ”低于关系运算符,“ . ”高于算术运算符;即: “!”(规律非) 算术运算符 关系运算符 “ &” “
33、| ” 赋值运算符 逗号运算符;二、规律表达式“&”和“| ”的运算对象有两个,故它们都是双目运算符,而!的运算对象只有一个,因此它- - - - - - -精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思是单目运算符;规律运算举例如下:(1)a&b: 当& 两边都为 “真”时,表达式a&b 的值才是真;x 的值应在大于0 且小于 10值得留意的是:在数学中,关系式0x10 是可以使用的,表示的范畴内,但在语言中却不能用0x10 这样一个关系表达式来表示上述的规律关系,即关系运算符不能连用,但可以借助规律运算符来帮助运算,正确的表示方法是 0x & x1
34、0;(2)a|b: 当| 两边有一个为 “ 真”时,表达式 a|b 的值就是真;(3).a: 表示取反,假如 a 为真,就 .A 为假,反之亦然;例如!-5 的值就为 0. 在语言中,由 & 或| 组成的规律表达式,在某些特定情形下会产生“短路 “现象;(1)x & y & z ,只有当 x 为真 非 0时,才需要判别 y 的值;只有 x 和 y 都为真时,才需要去判别 z 的值;只要 x 为假就不必判别 y 和 z,整个表达式的值为 0;口诀: “一假必假 ”;例:(!5=1)&(+i=0) (!5=1)表达式的值为 0,所以运算机运行中就跳过(+i=0)此表达式,(! 5=1)& (+i=
35、0)表达式的值为 0. (2)x|y|z ,只要 x 的值为真 非零 ,就不必判别 y 和 z 的值,整个表达式的值为 1,只有 x 的值为假, 才需要判别 y 的值, 只有 x 和 y 的值同时为假才需要判别 z 的值, 口诀: “ 一真必真 ”;考点 13 位运算一、位运算符在运算机中, 数据都是以二进制数形式存放的,C语言供应 6 种位运算符;操作符 含义 规章 & 按位与位运算就是指对储备单元中二进制位的运算;如两个相应的二进制位都为1,就该位的结果为1,否就为 0 | 按位或两个相应的二进制位中只要有一个为1,就该位的结果为1,否就为 0 按位异或 如两个二进制位同号,就结果为 0,
36、异号为 1 按位求反 按位取反,即 0 变 1,1 变 0 右移 将一个数的二进制位全部右移如干位 说明:(1)位运算中除 “ “以外,均为双目运算符,要求两侧各有一个运算量;名师归纳总结 - - - - - - -第 13 页,共 14 页精选学习资料 - - - - - - - - - 读书之法 ,在循序而渐进 ,熟读而精思(2)运算量只能是整型或字符型数据,不能为实型数据;二、位运算位运算符 & | 按优先级从高到低排列的次序是:位运算符中求反运算“ “优先级最高,而左移和右移相同,居于其次,接下来的次序是按位与 “ &“、按位异或“和按位或“ | “;次序为 & | ;例 1 左移运算
37、符 “ ”是双目运算符;其功能把“ ”左边的运算数的各二进位全部左移如干位,由 “ ”右边的数指定移动的位数,高位丢弃,低位补 0;例如:a”是双目运算符;其功能是把“ ”左边的运算数的各二进位全部右移如干位, “ ”右边的数指定移动的位数;例如:设 a=15,a2 表示把 000001111 右移为 00000011 十进制 3;应当说明的是,对于有符号数,在右移时,符号位将伴同移动;当为正数时,最高位补 0,而为负数时,符号位为 1,最高位是补 0 或是补 1 取决于编译系统的规定;例 3 设二进制数 a 是 00101101 ,如通过异或运算 ab 使 a 的高 4 位取反,低 4 位不变,就二进制数 b 是;解析 :异或运算常用来使特定位翻转,只要使需翻转的位与1 进行异或操作就可以了,由于原数中值为1 的位与 1 进行异或运算得0 ,原数中值为0 的位与 1 进行异或运算结果得1;而与 0 进行异或的位将保持原值;异或运算仍可用来交换两个值,不用暂时变量;如 int a=3 , b=4;,想将 a 与 b 的值互换,可用如下语句实现:a=ab; b=ba; a=ab; 名师归纳总结 所以此题的答案为:11110000 ;第 14 页,共 14 页- - - - - - -
限制150内