- 1、本文档共81页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
将其保存为test2.sh。然后再编译并执行程序。 [root@localhost shell] # chmod +x test2.sh [root@localhost shell] # ./test2.sh Press any key to continue ...... 4.6 位运算 4.6.1 位运算符 C语言提供了六种位运算符: (按位与)、|(按位或)、^(按位异或)、~(取反)、(左移)、(右移)。 1、按位与运算 按位与运算:只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。 例如:9 5可写成算式如下: 可见 9 5 = 1。 按位与运算通常用来对某些位清0或保留某些位。 例如把a 的高八位清0,保留低八位,可作 a 0x00ff 运算(0x00ff的二进制数为0000000011111111)。main(){ int a=9,b=5,c; c=ab; printf(a=%d/nb=%d/nc=%d/n,a,b,c);} 2、 按位或运算 只要对应的二个二进位有一个为1时,结果位就为1。 例如:9|5可写算式如下: 可见9|5=13。 main(){ int a=9,b=5,c; c=a|b; printf(a=%d/nb=%d/nc=%d/n,a,b,c);} 3、按位异或运算 当两对应的二进位相异时,结果为1。 例如 9^5 : main(){ int a=9; a=a^15; printf(a=%d/n,a); } 4、求反运算 其功能是对参与运算的数的各二进位按位求反。 例如,~9的运算为:~(0000000000001001)结果为:1111111111110110。 5、 左移运算 把“ ”左边的运算数的各二进位全部左移若干位,由“”右边的数指定移动的位数,高位丢弃,低位补0。 例如: a4 6、 右移运算 把“ ”左边的运算数的各二进位全部右移若干位,“”右边的数指定移动的位数。 例如:设 a=15,a2表示把000001111右移十进制3)。 4.6.2 位表达式 将位运算符连接起来所构成的表达式称为位表达式。在这些位运算符中,其优先级依次为: ~(取反运算符)、或(左移或右移)、(按位与)或|(按位或)或^(按位异或)。 a = 5; 就等价于: a = a 5; 再比如:GPDR = ~ 0xff; 我们将其展开:GPDR = GPDR (~0xff); GPDR = GPDR 0x00; 完成了对GPDR的清0。 一个常用的操作是用 来获取某个或者某些位。 例如获取整数x中的低4位可以写成 x =0x0F; x=x0x0F; 也可以用|、、、等配合来设置和清除某位或者某些位。 例如: x =0x1; 即:x=x0x1; /* 清除x的最后一位,即第0位 */ x =(0x15); 即:x=x(0x15); /* 清除x的低5位 */ x |=0x1; 即:x=x|0x1; /* 将最后一位(即第0位)设置为1 */ x |=(0x16); 即:x=x|(0x16); /* 将x的第6位设置为1 */ 本章小结 本章是在嵌入式Linux中进行程序设计的基础,介绍了Gcc编译器的使用,虽然它的选项较多,但掌握常用的一些选项即可。介绍了Make工程管理器的使用,这里包括Makefile的基本结构、Makefile的变量定义及其规则和 make命令的使用。还介绍了autotools的使用,这在项目设计中是非常有用的工具。最后简单介绍了位运算。 例如 OBJS = main.o mytool1.o mytool2.o CC = gcc main: $(OBJS) $(CC) $(OBJS) -o main main.o: main.c $(CC) -c main.c mytool1.o: mytool1.c mytool1.h $(CC) -c mytool1.c mytool2.o: mytool2.c mytool2.h $(CC) -c mytool2.c 进一步简化 OBJS = main.o mytool1.o mytool2.o CC = gcc main: $(OBJS) $(CC) $^ -o $@ main.o: main.c $(CC) -c $ -o $@ mytool1.o: mytool1.c mytool1.h
您可能关注的文档
最近下载
- 作业设计研讨活动记录.doc
- 2025国家电投校园招聘笔试备考题库及答案解析.docx
- 2021-2022学年五年级上学期综合实践活动(劳动教育)第6课巧做糖画教案.docx
- 创业意识与创业技巧:了解企业登记注册流程.pptx
- 山东省淄博市2023年高一上学期《英语》期中试卷与参考答案.pdf
- 大学生职业规划大赛成长赛道 (修订).pptx
- 2018重庆市建设工程混凝土与砂浆配合比表.pdf
- WhyNothingWorks.doc VIP
- 住院医师规范化培训基地标准(2022年版)--皮肤科专业基地细则.docx
- JB∕T 2436.2-2020 导线用铜压接端头 第2部分:10mm2~300mm2导线用铜压接端头.pdf
文档评论(0)