二进制常用运算
简介:
逻辑变量之间的运算称为
逻辑运算。
二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为
逻辑变量。 计算机的逻辑运算的
算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。
详细介绍:
1.按位与&
两位全为1,结果才为1. 例:0&1=0 1&1=1
作用:
1.清零
2.取一个数中指定数: 例:X=10101110 取X得低四位。 X&00001111=0000 1110
2.按位或 |
只要有一个位1,结果就位1.
作用:常用来对一个数据的某些位 置1. 例:X=00001001 使X低四位为1 X|0000 1111=00001111
3.异或运算^
两个相应位为"异"(值不同),则该位结果为1,否则为0.
作用:1.使特定位翻转,找一个数,对应X要翻转的各位,该数的对应位为1,其余位为0,此数与X对应位 异或即可。
例:X=10101110 使X低四位翻转
X^0000 1111=10100001
2.与0相异或,保留自身原值。(应用在两个变量交换值,效率最高)
例:A=A^B,B=A^B,A=A^B 这样A和B的值就交换了。
4.取反运算~
对一个二进制数按位取反。~0=1
例:在java中对有符号int型数取反运算。
注:在java中有符号整数都是用补码表示的。
所以我们还需要了解补码的知识:
原码:一个整数按照绝对值大小转换成的二进制数称为原码。
反码:
1.正数的反码与其原码相同;
2.负数的反码是对其原码逐位取反,但符号位除外。
原码10010= 反码11101 (10010,1为符号码,故为负)
(11101) 二进制= -2 十进制
补码:
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
取反方法:1.对正数:先对其表示的二进制取反,得到负数的补码;然后求出反码,最后求出原码。(即为所求数)
例:~3
java中int类型的长度是四个字节,也就是32位,so:
00000000 00000000 00000000 00000011
取反: 1... 11111100 最高位为1,所以这是负数的补码形式。
求出反码: 1... 11111011
求出原码: 0... 00000100 数字为4
之前此数的补码最高位为1,所以 ~3=-4
2.对负数:先求负数的补码,然后直接取反。(注意最高位1代表负数,0代表整数)。
此篇为复习基础知识所写。