アプリ版:「スタンプのみでお礼する」機能のリリースについて

すごく基本的なことだと思いますが、教えてください。
-128など、負の数を16進数で表す場合どのように表したら、
よいのですか。

A 回答 (6件)

> ただ、まだ、-128が80Hになるのがわかりません。



2進数から16進数への変換は理解されているでしょうか?
-128を8ビットの2進数の2の補数で表現すると 10000000 なので、これを16進数にすると、80(Hex)になります。

数学では、何進数だろうが数値の前にマイナスを付けることで、負の数を表現できますが、
カテゴリがコンピュータなのでコンピュータ内部での負の数の扱い方という観点から説明しました。
負の数の表現には、2の補数以外にも、1の補数、符号ビット+絶対値、エクセス表現などがありますが、
2の補数(n進数のnの補数)は、減算を加算回路で計算できるという利点があるため広く使われています。

10000000だと、128なのか、-128なのか分からないじゃないか、と思われるかも知れませんが、
プログラマが、その時々に符号付き整数を扱っているのか、符号なし整数を扱っているのか、
認識していれば(又はコンパイラに指示をしていれば)混乱はありません。

http://mt-net.vis.ne.jp/ADFE_mail/0041.htm
http://www.sist.ac.jp/~suganuma/cpp/1-bu/1-sho/1 …
    • good
    • 1

基本として、16進数表記には-(負)はありません



10進表記の-(負)をどうするのかは、変換する定義によります

通常、32ビット、64ビット、128ビットの場合を定義します

整数、浮動小数点実数等、いろいろな定義があります(IEEE定義とか)

詳しくは、上記をキーワードで検索してください
    • good
    • 1

マイナス(-)をつけたらいいだけだと思いますが。

    • good
    • 1

負の数を表す場合、最近のコンピュータの多くは2の補数を使います。


8ビットでの表現だと

2進数  符号なし 2の補数
00000000   0   0
00000001   1   1
・・・
01111111  127  127
10000000  128  -128
10000001  129  -127
・・・
11111110  254   -2
11111111  255   -1

となるので、-128は、80Hになります。
    • good
    • 1
この回答へのお礼

ありがとうございます。
最近は、2の補数をつかうんですね。

ただ、まだ、-128が80Hになるのがわかりません。
もう少し詳しく教えてもらえないでしょうか?
お願いします。m(_ _)m

お礼日時:2005/12/05 11:07

ウィンドウスの電卓でやると


FFFFFFFFFFFFFF80
と表示されます。整数を何バイトで表現するかで変わるでしょうが。
    • good
    • 1

補数で表します。



参考URL:http://www5f.biglobe.ne.jp/~pafu/kihonweb/gozen/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!