こんにちは私は数値を取り、そのバイナリ表現と一緒にそれを出力するメソッドを作成しています。問題は、私のメソッドが正の数の場合はすべて0を出力し、負の数の場合はすべて1を出力することです。
private static void display( int number ){
System.out.print(number + "\t");
int mask = 1 << 31;
for(int i=1; i<=32; i++) {
if( (mask & number) != 0 )
System.out.print(1);
else
System.out.print(0);
if( (i % 4) == 0 )
System.out.print(" ");
}
}
私はそれを手に入れました:これはうまくいきます:
/**
* prints the 32-bit binary representation of a number
* @param number the number to print
*/
private static void display( int number ){
//display number and a tab
System.out.print(number + "\t");
//shift number 31 bits left
int mask = 1 << 31;
//loop and print either 1 or 0
for(int i=31; i>=0; i--) {
if( ((1 << i)&number) != 0)
System.out.print(1);
else
System.out.print(0);
//every four bits print a space
if( (i % 4) == 0 )
System.out.print(" ");
}
//print new line
System.out.println();
}