package week01.进制and位运算; public class BinaryTest { public static void main(String[] args) { int n1 = 0b1010;//2进制 int n2 = 01010;//8 int n3 = 1010;//10 int n4 = 0X1010;//16 System.out.println(n1); System.out.println(n2); System.out.println(n3); System.out.println(n4); //x进制转换为10进制 //公式.... //10进制转换x进制 //辗转相除法 } }
![image-20220419165750722](存放typora图片/image-20220419165750722.png
package week01.进制and位运算; public class 原码反码补码 { public static void main(String[] args) { int a = 2; int b = 3; System.out.println(a & b); System.out.println(a | b); System.out.println(a ^ b); System.out.println(~a); System.out.println(~b); } }
2原码 00000000 00000000 00000000 00000010 因为2是正数三码合一 对于2取反 11111111 11111101 补码 这个就变成负数了 补码 = 反码 + 1 所以反码就是 11111111 11111100 求出原码 00000000 00000011 就是3 1.正数三码合一 2.运算用补码运算 3.负数的时候补码 = 反码 + 1; 4.第一位(符号位)0表示整数 1表示负数 5.负数原码跟反码,符号位不变,其余变成相反的 6