K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>第1版p135, 第2版p156の、byteorder.cの実行直後の文、『私の環境では「0x12345678」と >>いう値は、メモリ上に、逆向きに配置されているようですね。』とあるのですが、 >>何とは「逆向き」に、なのかがわかりません。何と逆向きなのでしょうか? > >「0x12345678」という16進の表記と逆向き、という意味で書いています。 > >>(ぱ)さんの環境(little endian)で、78->56->34->12と表示されている、 >>というのは、下の位から上の位にメモリアドレスが増えていっているので、 >>僕には、逆ではなく【順に】に思えるのです。 > >うーん、主観の問題とは思いますが、どうなんでしょう。 >「下の位を先にメモリに格納する」というのは、コンピュータの事情としては >わかるケースもありますが、通常、人間は、数字を印刷・表示した状態の順序で >意識しているのではないでしょうか。過去、この話を新人君やお客様にしたことは >何度かありますが、私の経験した範囲では、「へー、逆なんだ」という反応でした。 >ポインタ完全制覇の初版が出てから17年、この点で違和感を表明したのは >knwifuruさんが最初です(もちろん、表明しなかっただけで、違和感を感じていた人は >いたのかもしれません)。 > >>しかし、もともと、endianというのは、「卵の尖った側(小さい側)から(先に)食べるか、 >>丸い側(大きい側)から食べるか」=「bit/byte列のlower bits側が先に(lower addressに) >>置かれるか、higher bitsが先に置かれるか」という事のようなので、 >>数字を印刷・表示した時・読んだ時に先に・早く出てくるかどうか?で議論をすると、 >>混乱すると思うのですが、いかがでしょうか? > >まあこれはendianを知らない人向けの説明なので、「もともとendianというのは~」で >説明してもあまり意味はなく、「数字を印刷・表示した時・読んだ時」の順と >逆になっていることから、「そんなこともあるんだ、へー」と思ってもらえば >よいかと思っています。 >「へー、逆なんだ」と思わない人は、knwifuruさんの他にもいるのかもしれませんし、 >実のところどっちが多数派なのかもわかりませんが、本の書き手としては、 >「想定読者は過去の自分自身」という視点から逃れられないものなのかもしれません。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!