- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言位操作是
一、位的概念
我们知道,在计算机中,一字节占8位(现在的某些电脑也有占16位的),这样表示的数的范围为0-255,也11111111.位就是里面的0和1.
charc=100;
实际上c应该正好是64H。其中高位在前,低位在后。
第7位第0位
二、位逻辑运算符
符号描述位逻辑与
|位逻辑或
^位逻辑异或
~取补
表中除去最后一个运算符是单目运算符,其他都是双目运算符。这些运算符只能用于整型表达式。位逻辑运算符通常用于对整型变量进行位的设置、清零、取反、以及对某些选定的位进行检测。
在程序中一般被程序员用来作为开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行位操作。
运算的规则是当两个位都为1时,结果为1,否则为0;
|运算的规则是当两个位都为0时,结果为0,否则为1;
^运算的规则是当两个位相同时,结果为0,否则为1;
~运算的规则是当为1时结果为0,当为0时,结果为1.
设置位:设置某位为1,而其他位保持不变,可以使用位逻辑或运算。charc;
c=c|0x40;
这样不论c原先是多少,以后,总能使第6位为1,而其他位不变。清除位:设置某位为0,而其他位保持不变。可以使用位逻辑与运算。c=c0xBF;
这样c以后,总能使第6位为0,其他位保持不变。那如果想让某位为1,其他位都为0怎么办呢?
三、位移运算符
符号描述
左移
位移运算符作用于其左侧的变量,其右侧的表达式的值就是移动的位数,运算结果就是移动后的变量结果。
b=a2;
就是a的值左移两位并赋值为b。a本身的值并没有改变。
向左移位就是在低位沙锅补0,向右移位就是在高位上补0。右移时可以保持结果的符号位,也就是右移时,如果最高位为1,是符号位,则补1而不是补0。
程序员常常对右移运算符来实现整数除法运算,对左移运算符来实现整数乘法运算。其中用来实现乘法和除法的因子必须是2的幂次。(即2、4、8等,对应移动的位数就是1、2、3)
举例:输入一个整数,判断这个数中有几个二进制位1?例如输入67,输出结果应该为3.因为67的相应二进制数为0000000001000011(0043H),有3个1出现。
分析:要判断是不是1,只需要判断该位与1与以后是不是1就可以知道。一个整数,判断16次即
main()
intnum,k;
intcount=0;/*记录1的个数*/scanf(%d,num);for(k=0;k16;k++)
printf(%d,count);
这样每次都判断最低位是不是1,判断完以后,让前面的右移一位即可。
对位的操作,一般程序中用的不多,但是在对计算机硬件操作时,肯定会涉及到。例如,我们以后
要讲到的对串口和声卡操作就要用到一些。自总结:
0清零(置0)
1保留原值
|0保留原值
|1置1
这两个操作都有保留原值的功能,这很关键。由此,与|的功效可以用置0和置1来区分
例:a=1010
取第二位:
即其他位置零,第二位保留原值,然后右移一位
高位第四位置0:
第四位置零,其他位保留原值。a0111
3.置第三位为1:
其他位保留原值,第三位置一。a|01004.第三位置1,其他位置0:(a|0100)0100
总结:记住四个字“与零或一”即“0|1”功能对应“置0置1”
所有需求都往这个上转化,先由此确定选用的位操作符,再看其他位是否需要保留,或者进一步选择下一步操作的位操作符。
比如:取某位,相当于其他位置0,所以就要用操作。再比如上方第四个例子。
a=1001
a^1111=0110//相当于取反a^0000=1001//相当于没变化一个抑或的小例子:
您可能关注的文档
- 无效成本管理办法.pptx
- 二维动画制作实训报告.docx
- 下雨初一满分作文5篇.docx
- 中学生消防意识演讲稿材料5篇.docx
- 2023高中物理功和机械能的知识点.docx
- 2023年高中物理教师年终个人述职报告(通用3篇).docx
- 人与环境为题的演讲稿700字大全5篇.docx
- 三八妇女节做一件暖心的事作文5篇.docx
- 老板在年会上致辞发言稿(实用)5篇.docx
- 中考动员大会的教师发言5篇.docx
- 浙教版20212022学年度九年级数学下册模拟测试卷3293.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷325.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3296.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3295.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3379.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3418.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3236.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3284.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3264.pdf
- 浙教版20212022学年度九年级数学下册模拟测试卷3279.pdf
文档评论(0)