今天来为大家分享C语言的按位与、或、非、异或都什么意思。有什么用的一些知识点,和按位非是什么意思的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
本文目录
java中的“~”这个符号是表示什么意思啊在JAVA中,"~"是什么意思C语言的按位与、或、非、异或都什么意思。有什么用~是按位取反(0变1,1变0)的意思,
按位取反是针对二进制的,比如2的二进制表示为010,那么~2就是101
每位可以代表一个含义,针对你的问题。
我们可以定义SelectionKey.OP_READ为100,表示读权限
我们可以定义SelectionKey.OP_WRITE为010,表示写权限
我们可以定义SelectionKey.OP_EXECUTE为001,表示可执行权限
则111就表示拥有所有的读{了解更多生肖对照表知识请关注:wwW.xzlOng.Cc",;)}"、写、可执行权限
而~SelectionKey.OP_WRITE就是~010== 101,就是除写之外的所有权限(即可读,可执行)
~是位运算符,意义是
按位非(NOT)
按位非也叫做补,一元运算符NOT“~”是对其运算数的每一位取反。例如,数字42,它的二进制代码为:
00101010
经过按位非运算成为
11010101
优先级按位运算符的优先级,在运算符中优先级最低。
这些是位操作运算符:参与运算的量,按二进制位进行运算。
在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。
包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
位运算符&|~<<>>∧按优先级从高到低排列的顺序是:
位运算符中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与“&“、按位异或“∧“和按位或“|“。顺序为~<<>>&∧|。
扩展资料:
例:设二进制数a是00101101,若通过异或运算a∧b使a的高4位取反,低4位不变,则二进制数b是。
解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。
如 int a=3, b=4;,想将a与b的值互换,可用如下语句实现:
a=a∧b;
b=b∧a;
a=a∧b;
所以本题的答案为: 11110000。
参考资料来源:百度百科-C语言
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!