JAvaバイナリと負数の相互変換


負数表現はまず、原コード、逆コード、補コードについて理解しなければならない.1、原コードとはバイナリ定点表現法であり、すなわち最高位がシンボルビットであり、「0」は正を表し、「1」は負を表し、残りのビットは数値の大きさを表す.2、逆符号表示法は、正数の逆符号はその原符号と同じであることを規定している.負数の逆符号は、その原符号をビット毎に逆にするが、シンボルビットを除く.原符号10010=逆符号11101(10010,1は符号符号であるため負)(11101)バイナリ=-13十進法3、補符号表現法は、正数の補符号が原符号と同じであることを規定する.負数の補符号は、その逆符号の末尾に1を加算する.例えば、整数−1がコンピュータでどのように表されるかを見てみましょう.これもintタイプであると仮定すると、1、1の原号:00000000 00000000 00000000 00000000 2、逆符号:11111111 11111 11111 11111 11111 11111110 3、補完符号:11111111111 11111 11111 11111 11111 11111 11111 11111 11111 11111
16進表記:0 xFFFFFFFF
だからJavaではInteger.toBinaryString(-5)の結果は11111111111111111111111111011である.Integerは32ビット(bit)です.
負数回転バイナリ法則:
1、負数の絶対値の元のコードを取る.
2、原符号の逆符号を計算する.
3、逆符号に1を加えて、補符号を取得する.
3バイナリ3 0011 1100 1101へ
バイナリ負数(先頭が1)を10進数負数1に変換し、バイナリに対して1を減算し、この数に対して逆符号3をとり、この数を得る10進数
1101 1100 0011 3
JAvaバイナリと十進法の相互変換
		 int num=3;
    	String s=Integer.toBinaryString(num);	
    	//      
    	BigInteger bi = new BigInteger(num);
		bi.toString(2);


    	int a=Integer.valueOf(s,2);
    	//        
    	BigInteger bi = new BigInteger(s., 2);
    	return bi.intValue();