Java8 运算符(进制与转换、原码,反码和补码、位运算详解、运算符的优先级)

版权声明:转载请附上文章地址 https://blog.csdn.net/weixin_38134491/article/details/85594695
  • 进制

 binary:  1 -> 10 -> 11 -> 100  每次从后面进一位

octal:  7-> 10    八进制是0-7之间,底数为8的计算

hexadecimal:A....F

  • 转换

十进制转换成其他进制:转化成几进制就除以几

比如, 十进制的12,转化成二进制就除以2,然后将余数反着写即可

12

6-----------0

3-----------0

1-----------1

0-----------1  //1除以2得0余1

二进制转化成其他进制用乘法

扫描二维码关注公众号,回复: 4802559 查看本文章
  • 原码、反码、补码

原码:数的二进制表示,正数以0开头,负数以1开头

反码:原码的符号位不变,其他位取反

补码:在反码的基础上加1 

正数的原码、反码和补码相同

比如:

12

0000 0000 0000 0000 0000 0000 0000 1100

第一位是0, 所有表示一个正数

-12

0000 0000 0000 0000 0000 0000 0000 1100  取反如下,

1111 1111 1111 1111 1111 1111 1111 0011   反码, 开头1表示负数

1111 1111 1111 1111 1111 1111 1111 0100  在反码的基础上+1就是补码了

  • 位运算(&, | , ^  ,  ~)

参与运算的都是整形数据,将数据转成二进制再按位运算

&: 只有两个位上都是1结果才是1

| : 只要两个位上有一个是1 ,结果就是1

^: 异或运算,相同为0,不同为1

~: 位非,按位取反,每一位取反

如:

0000 0000 0000 0000 0000 0000 0000 1100 的~运算后

1111  1111   1111  1111  1111  1111 1111 0011

package project4;

public class test6 {

	public static void main(String[] args) {
			System.out.println(12&13);
			System.out.println(12|13);
			System.out.println(12^13);		
            System.out.println(~12); //取反
	}

}

输出结果:
12
13
1
-13

灵活掌握 原码,反码,补码之间的关系和运算,比如,知道补码怎么求原码?补码减去1再取反就是原码了

  • 位运算(<<,>>,>>>)

参与运算的数都是整数数据,将数据转成二进制再移位运算

<< :向左运算,在低位补0

>> : 有符号右移,若值为正,则在高位插入0, 若值为负,则在高位插入1 

>>> : 无符号右移,无论正负,都在高位插入0

若对char、byte、short进行移位处理,在移位之前,他们会自动转换成一个int

package project4;

public class test6 {

	public static void main(String[] args) {
			
			System.out.println(12<<2);		
       /*	0000 0000 0000 0000 0000 0000 0000 1100    :12
			00 0000 0000 0000 0000 0000 0000 110000   <<
			12左移两位就是去掉12最左边的两位,然后在最后面补0*/
		
			System.out.println(12>>2);
		/*	0000 0000 0000 0000 0000 0000 0000 1100    :12
		    00 0000 0000 0000 0000 0000 0000 0000 11 >>
			12右移就是去掉最右边两位,然后在最左边补两个0*/
			
			System.out.println(-12>>>2);
			/*00 1111 1111 1111 1111 1111 1111 1111 01    -12>>>2*/
			
			System.out.println(Integer.toBinaryString(1073741821));  //把整型转成二进制	
	}

}
  •  运算符的优先级

推荐使用小括号限定执行的优先级

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/85594695