-
public class Convert{ public static byte[] int2Bytes(int id){ byte[] arr=new byte[4]; /**arr[0]=(byte)((int)(id>>0*8)&0xff); arr[1]=(byte)((int)(id>>1*8)&0xff); arr[2]=(byte)((int)(id>>2*8)&0xff); arr[3]=(byte)((int)(id>>3*8)&0xff);*/ for(int i;i<arr.length;i++){ arr[i]=(byte)((int)(id>>i*8)&0xff);} return arr;} //转化byte[]为int public static int byte2Int(byte[] arr){ /** int rs0=(int)((arr[0]&0xff)<<0*8); int rs1=(int)((arr[1]&0xff)<<1*8); int rs2=(int)((arr[2]&0xff)<<2*8); int rs3=(int)((arr[3]&0xff)<<3*8);*/ int result=0; for(int i;i<arr.length;i++){ result+=(int)((arr[i]&0xff)<<i*8);} //return rs0+rs1+rs2+rs3; return result;} //long转化为byte[] public static byte[] long2Bytes(int id){ byte[] arr=new byte[8]; for(int i;i<arr.length;i++){ arr[i]=(byte)((int)(id>>i*8)&0xff);} return arr;} //转化byte[]为long public static int byte2Long(byte[] arr){ int result=0; for(int i;i<arr.length;i++){ result+=(long)((arr[i]&0xff)<<i*8);} //return rs0+rs1+rs2+rs3; return result;} public static void main(String[]args){ byte []arr=Convert.int2Bytes(8143); System.out.println(arr); System.out.println(Conert.bytes2Int(arr)); //字符串与字节数组 String describe="我每天都练功,我天下无敌..."; byte[] barr=describe.getBytes(); String des=new String(barr); System.out.println(des);}}
查看全部 -
public class RadixMain{ public static void main(String[]args){ //十进制转为其他进制 System.out,println(Integer.toBinaryString(112));//二进制 System.out.println(Integer.toHexString(112));//十六进制 System.out.println(Integer.toOctalString(112));//八进制 //其他进制转化为十进制 System.out.println(Integer.parseInt("111001",2));//二进制 System.out.println(Integer.parseInt("27",8));//八进制 System.out.println(Integer.parseInt("A8",16));//十六进制 }}
查看全部 -
求负数的十进制
补码减1得反码
反码取反得到原码
计算正值
取相反数
查看全部 -
按位与&
两位全为一,结果才为1
0&0=0;0&1=0;1&0=0;1&1=1;
用法:清零,如果想要将一个单元清零,即使其全部二进制位0,只要与一个各位都为零的数值相与,结果位零
取一个数中指定位,找一个数,对应X要取的位,该数的对应位为1,其余为零,此数与X进行“与运算”可以得到X中的指定位
按位或|
只要有一个为1,结果就为1
0|0=0;1|0=1;0|1=1;1|1=1;
用法:常用来对一个数据的某些位置设为1,找到一个数,对应X要设置为1的位,该数的对应位为1,其余位为零,此数与X想与可使X中某些位设置为1
异或运算^
两个相应位为“异”(值不同),则改位结果为1,否则为0
0^0=0;0^1=1;1^0=1;1^1=0;
用法:使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为0,此数与X对应位异或即可
与0相异或,保留原值
取反运算~
对一个二进制数按位取反,即将0变1,1变0
~1=0;~0=1;
查看全部 -
字符串转化字节查看全部
-
大小端法:查看全部
-
数据类型转化字节查看全部
-
0xFF 是计算机十六进制的表示: 0x就是代表十六进制,A B C D E F 分别代表10 11 12 13 14 15 F就是15 一个F 代表4位二进制:可以看做 是 8 4 2 1。
0xFF的二进制表示就是:1111 1111。 高24位补0:0000 0000 0000 0000 0000 0000 1111 1111;
查看全部 -
负数以其正值的补码形式表示
查看全部 -
原码、反码、补码
查看全部 -
无符号有移运算 >>
查看全部 -
右移运算>>查看全部
-
左移运算
11(1011)
在java中,整型是32位的,所以符合高位不包含1(00000000 00000000 00000000 1011)
查看全部 -
异或运算^
两个变量交换值的方法
A=A^B;
B=A^B=(A^B)^B=A^(B^B)=A^0=A;
A=A^B=(A^B)^A=(A^A)^B=0^B=B;
原理:利用一个数异或本身等于9和异或运算符合交换率
查看全部 -
异或运算的特殊用途
(1)使特定位翻转
(2)与0相异或,保留原值
查看全部
举报