C言語を利用しています。
int型のデータ 16909060 を1Byteずつ取り出して表示するプログラムを作りたいのですが、
最終的に、 4 3 2 1 と表示されれば正解ですか?
メモリ操作
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: メモリ操作
わかりません。問題の仕様によります。manman さんが書きました:int型のデータ 16909060 を1Byteずつ取り出して表示するプログラムを作りたいのですが、
最終的に、 4 3 2 1 と表示されれば正解ですか?
その問題は全角文字で出力する問題なのですか?
ちなみに、十進数の16909060は十六進数で1020304と等しいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: メモリ操作
ちなみにみけCAT君の回答の値は普通のwindows標準電卓で計算できます。
添付ファイルをご覧ください。
添付ファイルをご覧ください。
Re: メモリ操作
対象のマシンによります。manman さんが書きました:バイトオーダーに気を付けて、16909060=1*256*256*256+1*256*256+3*256+4
より、変数に16909060を代入して確認しました。
1 2 3 4 か 4 3 2 1か微妙なところです。
x86などのリトルエンディアンのマシンでは下位アドレスから順に4 3 2 1、
MIPSなどのビッグエンディアンのマシンでは下位アドレスから順に1 2 3 4でしょう。
その他のエンディアンのマシンでは、その他の並びになるでしょう。
【追記】ググったらMIPSのエンディアンは「バイエンディアン」と言って切り替えられるらしいです。
最後に編集したユーザー みけCAT on 2015年8月05日(水) 23:07 [ 編集 1 回目 ]
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- Dixq (管理人)
- 管理人
- 記事: 1662
- 登録日時: 15年前
- 住所: 北海道札幌市
- 連絡を取る: