[過去ログ] 文字コード総合スレ Part12 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
21
(1): デフォルトの名無しさん [] 2018/12/19(水) 01:12:57.34 ID:jOXn0Ht9(5/5) AAS
ちなみipアドレスの並びはビックエンディアンになってる
ポート番号も当然ビックエンディアンになってる

ソケット通信のプログラム組んだことあるなら
ポート番号設定するのにhtons(コレはオクテット2つになる)という関数を使ったことあるハズだ

ちなみにこの関数はリトルエンディアンの計算機なら
ビッグエンディアンに変換された値がかえってくる

ビッグエンディアンの計算機なら
そのままビッグエンディアンの値がかえってくる
22: デフォルトの名無しさん [sage] 2018/12/19(水) 01:39:07.45 ID:B2A2n/bL(1) AAS
半角カタカナはAAにしか見えない
23
(1): デフォルトの名無しさん [sage] 2018/12/19(水) 06:24:21.16 ID:wJcYDzdz(1) AAS
最近の子はバイトオーダーなんて意識しないからな
常識としては知っててほしいがけど
低レベルな処理書かなきゃ関係ないし触れることもないだろうから知らなくても困らんな
アラインメントとかパディングとかも同様
24
(1): デフォルトの名無しさん [sage] 2018/12/19(水) 12:49:47.13 ID:JIdS0sYR(1) AAS
エンディアン嘘つかない
25: デフォルトの名無しさん [] 2018/12/19(水) 16:46:27.07 ID:R6d6JT/9(1) AAS
>>23
バイトオーダーを意識する機会が減ったのは、xmlやjsonなどテキスト形式でデータ受け渡しすることが多くなったから。
テキスト形式ならバイトオーダーを意識せずに済むし、スクリプト言語で扱うのにも便利。
26: デフォルトの名無しさん [sage] 2018/12/19(水) 20:30:33.10 ID:gznchIbF(1) AAS
いやいや、テキストでもUTF16とかUTF32ならめっちゃ意識するやん。
27: ◆QZaw55cn4c [sage] 2018/12/19(水) 20:51:34.30 ID:C9bIO99C(1) AAS
>>24
豆知識、endian とは?
もともとは、卵を丸い方の端 (big end) から割る人々(Big Endians)と尖った方の端から割る人々 (Little Endians) との対立を表したものだった
28: デフォルトの名無しさん [sage] 2018/12/20(木) 01:35:41.75 ID:jYg2YnYV(1) AAS
そういえばハンプティダンプティの絵文字がない
29: デフォルトの名無しさん [sage] 2018/12/20(木) 03:36:13.08 ID:Epiz8Tj2(1/5) AAS
バイトオーダーやアラインメントは、C/C++以外の言語でバイナリデータを使おうとした時に強く意識することになる。
C/C++で開発している時はコンパイラが自動的に配置・取得してくれるデータを、スクリプト言語では自力でオフセット調整して配置・取得しなければならない。
C/C++より簡単なことが長所だったはずのC#・Java・Perl・Python言語などで、低レベルなオフセット調節を自力で行う必要に迫られる皮肉な状況が起きる。
30
(1): デフォルトの名無しさん [sage] 2018/12/20(木) 04:20:27.30 ID:ojhJ7lIE(1/3) AAS
> バイトオーダーやアラインメントは、C/C++以外の言語でバイナリデータを使おうとした時に強く意識することになる。
C/C++言語以外ではライブラリが処理してしまうんで意識しないかな
C/C++ライブラリを呼び出すライブラリを作るときは意識するだろうけど、
それって結局C/C++言語で書くんで、あれ?意識するのはC/C++かw
31
(1): デフォルトの名無しさん [sage] 2018/12/20(木) 06:53:32.14 ID:Epiz8Tj2(2/5) AAS
>>30
例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、アセンブリ並みに低レベルなオフセット調節を自力で行う必要に迫られる。
32
(2): デフォルトの名無しさん [sage] 2018/12/20(木) 07:18:15.99 ID:ojhJ7lIE(2/3) AAS
× 例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、アセンブリ並みに低レベルなオフセット調節を自力で行う必要に迫られる。
○ 例えばWindows環境だと、C/C++以外の言語でWin32API関数を固有の構造体を入出力に使う場合、C/C++並みに低レベルなオフセット調節を自力で行う必要に迫られる。
33: ◆QZaw55cn4c [sage] 2018/12/20(木) 07:37:44.12 ID:W1ypdRwu(1) AAS
>>32
うーん、具体的な win32api 名(だけでいいです)を例示してください.
34: デフォルトの名無しさん [sage] 2018/12/20(木) 07:43:09.20 ID:ojhJ7lIE(3/3) AAS
>>31に聞いてください
35
(1): デフォルトの名無しさん [sage] 2018/12/20(木) 08:04:20.01 ID:Epiz8Tj2(3/5) AAS
>>32
勝手に書き換えないでもらいたい。
C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが、他の言語だとそうはいかないので、アセンブリと同じようなオフセット調節が必要。
SendMessage(WM_COPYDATA)の送受信データの読み書きなど例はいくらでもある。
36: デフォルトの名無しさん [sage] 2018/12/20(木) 10:08:25.12 ID:48mnxvPx(1) AAS
>>35
>C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが

誰に騙された?
37: デフォルトの名無しさん [] 2018/12/20(木) 13:46:21.36 ID:P4Rv6f7s(1) AAS
実行メモリ上はともかく
ファイルやネットワークストリームでLEにするアホいるんか?
38: デフォルトの名無しさん [] 2018/12/20(木) 16:58:53.93 ID:Epiz8Tj2(4/5) AAS
エンディアンもさることながら32/64bit整数の幅調節が厄介。
使っている言語が32/64bitどちら向けでビルドされたものなのかによって構造体メンバのアラインメントを適切に処理する必要が出てくる。
言い換えれば、C/C++で作った構造体をバイト列で渡し、C/C++以外の言語でバイト列を構造体に復元する処理が厄介。
単に構造体の64bit整数メンバだけ気を付けるのではダメで、構造体の全メンバのアラインメントそのものが大きく変わりうることに注意する必要がある。
39: デフォルトの名無しさん [sage] 2018/12/20(木) 18:26:27.50 ID:6OEKrw3R(1) AAS
いや、だからさ、その程度までは理解できてるのに、何故「C/C++だと構造体の各メンバ変数のアラインメントを意識しなくていいが」なんてことを言っちゃうの?
それとアラインメントの話とバイトオーダーの話を混同しないように気を付けた方がいいよ。
40: デフォルトの名無しさん [sage] 2018/12/20(木) 19:07:05.38 ID:oZOw2Nhk(1/2) AAS
C/C++しらないけど、魔法のようにアライメントを
勝手に調整してくれるんじゃないの?想像しただけで
41: デフォルトの名無しさん [] 2018/12/20(木) 21:19:19.38 ID:/Up9dRku(1/8) AAS
Unicodeは普通にリトルエンディアンもありだ

なんで Byte Order Mark(BOM) がファイルの先頭に入ってるのか分かってない
Javaバイトコードのcafe babeみたいな飾りだと思ってんの

リトルエンディアンの計算機ばっかりがあるとこで
ビッグエンディアンでファイルを保存する理由なんかないからな

当然、そういったコンテンツデータがHTTPでも流れてくる
42: デフォルトの名無しさん [] 2018/12/20(木) 21:20:17.21 ID:/Up9dRku(2/8) AAS
やっぱりこの板には
クルクルパーしかいない

そしてそのクルクルパーの声だけがでかい

やっぱりな低学歴知恵遅れは
この板から排除する必要がある
板が正常に機能しない
43: デフォルトの名無しさん [sage] 2018/12/20(木) 21:26:52.62 ID:gpCj1726(1/3) AAS
アライメントはふつうコンパイラが適切に調整してくれるよね。
32/64bitで整数サイズの違いでメンバオフセットが変わるってのはアライメントとは別の話。
44: デフォルトの名無しさん [] 2018/12/20(木) 21:31:46.95 ID:/Up9dRku(3/8) AAS
32bitなら
ちゃんと32bitに詰まるように
メンバの順序かえる
45
(1): デフォルトの名無しさん [] 2018/12/20(木) 21:38:37.03 ID:/Up9dRku(4/8) AAS
char unko
char foo
int aho
short poi
char baka
int manuke
short boo
char woo



int manuke
----
int aho
----
short poi
short boo
----
char unko
char foo
char baka
char woo

64bitでも考え方は同じ
強制パッキングのオプション使えるコンパイラもある
1-
あと 957 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s