java位运算符总结

来源:互联网 发布:地理探测器软件 编辑:程序博客网 时间:2024/05/16 18:19

位运算符用来处理整型和字符串的操作数,对其内存进行操作,数据在内存以二进制的形式表示。在计算中所有的数据最后都是以二进制表示,例如数字5:

可以表示为 00000000 00000000 00000000 00000101,5转化为二进制为101,由于int类型的数据占用4个字节,一个字节由8位二进制数组成,所以前面加了一堆0,

那么-5怎么用二进制表示呢?-5是由它正数的补码表示,要计算它的补码就要先计算它的反码,反码就是原二进制数按位取反,得到的新二进制数就是原二进制数的反码。

补码就是在它的反码加1。5的反码为 11111111  11111111   11111111   11111010,那它的补码就是11111111  11111111   11111111   11111010 + 1,得到的二进制数为:

1111111  11111111   11111111   11111011。下面是Java提供的位运算符:


1.“按位与”运算的运算符为&,是双目运算符。其运算的法则是:如果两个操作数对应位都是1,则结果才是1,否则是0.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

2.“按位或”运算的运算符为“|”,是双目运算符,其运算的法则为:如果两个操作数对应位都是0,则结果为0,否则为1.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

3.“按位非”运算也称“按位取反”运算,运算符为“~”,是单目运算符。其运算法则是:将操作数二进制中的1全部修改为0,0全部修改为1

4.“按位异或”运算的运算符为“^”,是双目运算符,起运算法则是:当两个操作数的二进制表示相同(同为0或同为1)时,结果为0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

5.移位运算符有三种,其操作的数据类型只有byte、short、char、int、long5种。左移运算符“<<”就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,左边移空的部分补0.右移运算符“>>”则比较复杂,如果最高位是0,左移空的位就填入0;如果最高位是1,右移空的位就填入1.无符号右移运算符“>>>”不管最高位是0还是1,左移空的高位都填入0

原创粉丝点击