• 締切済み

サイトを使って勉強

サイトを使って勉強をしているのですが、 分からないところがあったので質問させていただきます。 それは下記サイトの2進数表現をするところ(サイトの最初あたり5-1 整数最大値の2進表現の部分) なんですが、 このサイトにはプラスの値を2進で表現する方法は載っているのですが、 例えば-100という値は2進で表現するにはどうしたらよいのでしょうか? よろしくお願いします。 http://homepage1.nifty.com/mstak/Program/javaintro2.html

みんなの回答

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

一般的には100を2進に直して-記号を付けるだけです。なので、-1100100 になります。 No.1さんで出ている出力は2の補数です。コンピュータ内部では負数を2の補数で扱っているのでこうなります。 質問者さんが一般的な表記を得たいのか2の補数での表記を得たいのかでやり方や結果は変わると思いますので、まずは質問者さんが何を得たいのか明確にすることが大事だと思います。

回答No.1

その場合も普通に代入してもらってかまわない。 (以下は俺の都合上クラス名を変更しているが気にするな) ================================== class Q3617123A{ public static void main(String[] args) { int max=-47; System.out.println("Integer = " + max); String bs = Integer.toBinaryString(max); System.out.println(max + " Binary = " + bs + " " + bs.length() + "bit"); System.out.println(max + " Hexa = " + Integer.toHexString(max).toUpperCase()); } } ============出力結果=========== Integer = -47 -47 Binary = 11111111111111111111111111010001 32bit -47 Hexa = FFFFFFD1 =========どうしてこういう出力結果になるのかは http://www.algolab.co.jp/~lum/pcnyumon/nyu032.htm を参照すること。

関連するQ&A