
Unixの"od"コマンドの出力結果について「?」があります。
以下のようにコマンド入力しました。
$ echo あ | od -x
0000000 a082 000a
0000003
「あ」の文字コードは0x82A0のはずですが、"od"コマンドの出力結果は"a082"となります。
これはどうしてでしょうか?
困っているわけではないのですが、すごーく気になるので、どなたか教えてください。
OS環境はRedHat Linux7.3で、TeraTermを使ってログインし、コマンドを入力しています。
TeraTermの漢字コードは「SJIS」にしています。
「EUC」に設定した場合でも同様の現象です。
No.2ベストアンサー
- 回答日時:
CPU アーキテクチャは Intel ですね?
Intel CPU においては「リトルエンディアン(little endian)」という形式で
データが転送されたり格納されたりします。
これはどういうことかというと、2バイト以上の長さのデータでは
上位バイトと下位バイトが逆転するのです。
それで本来 0x82,0xa0 という並びになるはずの数値が 0xa0,0x82
という表現をとるわけです。
このように下位の(小さい=little)方(end)が先頭に来る CPU を「little endian」、
逆に Sun SPARC など素直に上位バイト、下位バイトの順に並ぶ CPU を
「ビッグエンディアン(big endian)」と呼びます。
ちなみに、この「リトルエンディアン(little endian)」や「ビッグエンディアン(big endian)」
という語はスウィフトの「ガリバー旅行記」に由来し、
卵の尖った方から食べるのが正しいと主張する一派を「リトルエンディアン」、
丸いほうから食べるべしと唱えた一派を「ビッグエンディアン」
と呼んだことから始まります。ハッカー(スーパープログラマ)一流の洒落ですね。
参考URL:http://www.atmarkit.co.jp/icd/root/00/49717200.h …
IBMのAIXで"od"コマンドを使ってみましたが、Linuxとは異なる結果(私が期待していた結果ですね)になりました。
とても勉強になりました。どうもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「環境変数名の編集」ウィンド...
-
SCコマンドでアクセス拒否
-
[バッチファイル]レジストリ値...
-
Linuxコマンドは何の言語で書か...
-
setxコマンドが思い通りにいかない
-
UNIX コマンドにおける # や円...
-
ワイルドカードを使ってでフォ...
-
Excel下部のメニューが消えた
-
Linux:sedコマンドで置換がし...
-
コマンドプロンプトにおけるコ...
-
bash での空文字判定?
-
クイックアクセスツールバーに...
-
JP1での保留Job一覧取得につき...
-
echo $!の意味を教えてください
-
compressコマンドってなくなっ...
-
AIXでの文字コード、改行コード...
-
アクセスのボタンから指定のワ...
-
コマンドプロンプトでMsgを送信...
-
VBAを使って電源を切るには?
-
grep 検索 検索対象の行と、そ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX コマンドにおける # や円...
-
shutdownコマンドをキャンセル...
-
コマンドプロンプトにおけるコ...
-
ワイルドカードを使ってでフォ...
-
compressコマンドってなくなっ...
-
Linuxコマンドは何の言語で書か...
-
SCコマンドでアクセス拒否
-
[バッチファイル]レジストリ値...
-
vbaで「最前面に」とする方法は?
-
「環境変数名の編集」ウィンド...
-
Excel下部のメニューが消えた
-
echo $!の意味を教えてください
-
AIXでの文字コード、改行コード...
-
至急です、Ubuntuに詳しい方助...
-
コマンドプロンプトで変数内に...
-
Ctrl+Zで戻りすぎた場合、逆に...
-
DOSコマンドについて
-
Linuxでコマンドが終了しない
-
gfortranでmakefile
-
windows10を使っています。 wsl...
おすすめ情報