-
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)); //字符串與字節(jié)數(shù)組 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));//十六進制 }}
查看全部 -
求負數(shù)的十進制
補碼減1得反碼
反碼取反得到原碼
計算正值
取相反數(shù)
查看全部 -
按位與&
兩位全為一,結果才為1
0&0=0;0&1=0;1&0=0;1&1=1;
用法:清零,如果想要將一個單元清零,即使其全部二進制位0,只要與一個各位都為零的數(shù)值相與,結果位零
取一個數(shù)中指定位,找一個數(shù),對應X要取的位,該數(shù)的對應位為1,其余為零,此數(shù)與X進行“與運算”可以得到X中的指定位
按位或|
只要有一個為1,結果就為1
0|0=0;1|0=1;0|1=1;1|1=1;
用法:常用來對一個數(shù)據(jù)的某些位置設為1,找到一個數(shù),對應X要設置為1的位,該數(shù)的對應位為1,其余位為零,此數(shù)與X想與可使X中某些位設置為1
異或運算^
兩個相應位為“異”(值不同),則改位結果為1,否則為0
0^0=0;0^1=1;1^0=1;1^1=0;
用法:使特定位翻轉 找一個數(shù),對應X要翻轉的各位,該數(shù)的對應位為1,其余位為0,此數(shù)與X對應位異或即可
與0相異或,保留原值
取反運算~
對一個二進制數(shù)按位取反,即將0變1,1變0
~1=0;~0=1;
查看全部 -
字符串轉化字節(jié)查看全部
-
大小端法:查看全部
-
數(shù)據(jù)類型轉化字節(jié)查看全部
-
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;
查看全部 -
負數(shù)以其正值的補碼形式表示
查看全部 -
原碼、反碼、補碼
查看全部 -
無符號有移運算 >>
查看全部 -
右移運算>>查看全部
-
左移運算
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;
原理:利用一個數(shù)異或本身等于9和異或運算符合交換率
查看全部 -
異或運算的特殊用途
(1)使特定位翻轉
(2)與0相異或,保留原值
查看全部
舉報