ソースプログラムの中でデータを16進数で表す意味を教えて下さい

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2014/07/12 01:17:57
  • 終了:2014/07/19 01:20:03

回答(2件)

id:jan8 No.1

jan8回答回数455ベストアンサー獲得回数962014/07/12 01:28:17

コンピュータは2進数の世界。10進数より16進数の方が何かと便利だから。
十六進法 - Wikipedia

id:jan8

「16進数で表す意味」か。意味。
2進数を少ない文字数でコンパクトに表示している。

2014/07/12 01:30:11
id:JULY No.2

JULY回答回数966ベストアンサー獲得回数2472014/07/12 08:00:27

jan8 さんの「少ない文字数で」に補足ですが、単に文字数が少ないだけだったら 10 進数でも文字数は減ります。16 進数にするのは

  • 2進数の4桁が 16 進数で1桁

という関係が、実際に2進数と 16 進数の表記を相互に変換する上で都合が良いからです。

例えば、「10100101」という2進数を 16 進数の表記に変換しようとした場合、4桁ずつの「1010」と「0101」の2つの2進数に分け、それぞれを 16 進数表記(「A」と「5」)にすれば、「A5」が 16 進数表記になる事が分かります。その逆も同じで、16 進数の各桁を2進数にしていけば、全体の2進数表記になります。

しかし、10 進数表記にしようとしたら、まっとうに「1 + 22 + 25 + 27」と計算するしかありません。

プログラム中で、ビット単位の操作を行う場合、上記の 16 進数の性質が便利になります。

「10100101」の、下から数えて5桁目と7桁目ビットを 1 にする場合、「10100101」に対して「01010000」とのビット演算の OR を施せば、「11110101」になりますが、「01010000」を 16 進数で「50」と表記されていれば、5桁目と7桁目が 1 のデータである事は比較的容易に分かります。それに対し、10 進数で 80 と言われても、2進数でどの桁が 1 になっているかは、一見分かりづらいです。8bit のデータの時はまだ良いですが、bit 数が増えれば、その差は歴然としてきます。

この様に、ビット単位での処理を考えたときに、16 進数の方が、

  • コンパクトで
  • 各ビットの値が分かりやすい。

ということになります。逆に、わざわざ 16 進数で書かれていれば、「単なる数の計算ではない」という事を意識しやすくなります。

  • id:Qthulu
    データ長を明示するためとか
    一般的に16進数で表される何らかのコード(ASCII等)を明示するためとか

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません