
elttacさん、Tacosanさん、terrar5さん、先日はありがとうございました。どうしても、疑問でならない部分がありまして、よろしければ、もう少しお付き合いよろしくお願い致します。
/---------------------------------------------------------------------------
エディアンとは、2 バイト以上の数値データを記録・転送するときの 「各バイトの並べ方」です。
たとえば,2 バイトの数値 0x0102(10 進数で 258)を考えましょう。ビッグエンディアンでは,この格納順は正順,つまり,
01 02
になります。
-------------------------------------------------------------------------------/
1バイト目の0x02(2進数で 0000,0002)ですが、これも並び順によっては、0x20になっちゃったりしないのでしょうか?
1バイトでもビット単位で並び順が違えばさかさまになるような気がしまして。(1台のPC上では、バイト単位で処理しているので、大丈夫!? ネットワークでは、1bit単位でデータが転送されていますので???)
ビット単位でもビッグエンディアンやリトルエンディアンみたいなのがあるのでしょうか?
No.2ベストアンサー
- 回答日時:
>バイト目の0x02(2進数で 0000,0002)ですが、これも並び順によっては、0x20になっちゃったりしないのでしょうか?
(2進数で 0000,0010)のタイプミスですよね。
現在ではソフトウェアで順序を意識するのはバイトまでで、シリアル変換は通常は専用LSIで行いますので、規格ごとに決まった順序で送受信されます。RS232Cは下位ビットが先だったように記憶していますが、検索してもはっきり書いたページが見つかりませんでした。(昔はソフトでビットシフトしながら、1ビットずつ処理していたこともありますが)
>ビット単位でもビッグエンディアンやリトルエンディアンみたいなのがあるのでしょうか?
ありますが、規格ごとに決まっているのでプログラマが気にする必要はありません。
リトルエンディアンって、下位バイトをメモリ上の下位アドレスに格納するし、RS232Cの場合、下位バイトの下位ビットから上位バイトの上位ビットまでを順におくるのでわかりやすいのですが、ネットワーク上でのバイト順はビットエンディアンが採用されています。
数値の通信に関しては、ntohs,ntohl,htons,htonl等の関数でその環境に応じたエンディアンとネットワークエンディアンとの相互変換を必ず使うことにしておけば、どちらのエンディアンでも動くプログラムが作れます。
No.4
- 回答日時:
画像処理では重要な問題ですよ。
モノクロ2値画像を考えると、ビット並びがそのまま白黒のドットに対応します。
そこでMSB(最高位ビット)、LSB(最低位ビット)の位置関係が問題になります。
いわゆる68系と80系ではバイト単位、ビット単位どちらもエンディアンは逆ですから何も考えずに処理すると、画像の左右が反転します。
フォントまわりの制御でも同じ問題が出ますね。
No.3
- 回答日時:
いちおうビット単位でもエンディアンはあって, たとえば
「ビット0 はどこ?」と言われたときに
最上位ビットになるもの (ビッグエンディアンはたいていこうなる) と
最下位ビットになるもの (リトルエンディアンはたいていこうなる) が
あります.
C で普通にプログラムを書いている限りこのレベルで困ることは
ないのですが, ビットフィールドを使うとはまるかも.
No.1
- 回答日時:
データ通信を行う場合には、上位ビットから送るのか下位ビットから送るのかが問題になります。
しかし通常は専用ICを使うのでICにお任せです。
でも自力でパラレル/シリアル変換をする必要があるときには、相手側とちゃんと合わせないといけません。
※PIC等を使って組み込み用のプログラムを作るときなど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 電車・路線・地下鉄 ITパスポート試験問題 7 2023/01/25 09:51
- アルバイト・パート 数万円単位のお金が最短時間で欲しいです。 短期バイトなどは時給?とかでコツコツ仕事して決まった日にち 4 2023/08/26 15:45
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- 数学 以下の問題が分かりません。 8ビット浮動小数点数が、最上位ビットから順に符号1ビット、指数部3ビット 4 2023/07/22 16:06
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- 大学・短大 必修単位を意図的に落とす 5 2022/07/15 00:40
- 確定申告 確定申告と税金について。 お目通しありがとうございます。 確定申告と税金について質問のです。 今月か 5 2022/04/03 19:45
- ネットワーク 以下の問題を教えてください ホストを50台収容するLAN上のネットワークを構成したい。ネットワークア 2 2022/06/18 20:07
- 医学 二次医療圏の人口分布 1 2023/05/10 11:37
- 会計ソフト・業務用ソフト 社会と情報 1 2022/05/01 16:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ビットシフトってどんな時使うの?
-
C言語で128bitの2進数のビット...
-
シーケンス制御についての質問...
-
PS3に搭載されている"Cell"は、...
-
文字参照は10進数と16進数では...
-
一般のソフトで画像を扱う場合...
-
情報科学の飽和演算、ラップア...
-
エクセルVBAのIf,Then 構...
-
符号無し整数xを右にnビット回転
-
C言語やC++言語でビット毎に値...
-
アクセス(2003)のVBAでビット...
-
verilog 符号付加減算(最上位...
-
浮動小数点数の内部表現につい...
-
命令について
-
visualbasic のコード中で 100...
-
スロースキャンコンピュータ 加...
-
16ビットCPUで32ビットの計算方法
-
整数除算の意味とは?
おすすめ情報