• 締切済み

GetFileSizeの最大

GetFileSizeは関数が失敗すれば、0xFFFFFFFFを返します。 説明のために、DWORDが4ビットだったとすると、 GetFileSizeが失敗して 1111が返ることになると思います。 そうすると、返り値で得られる最大サイズは0111ですか? 第2引数を使った場合は、0111と1111を合わせたものが最大サイズで、 実際だと、01111111111111111111111111111111と、1が32個を合わせた、 16進数だと、7FFFFFFFとFFFFFFFFを合わせた、 10進数だと、2147483647と4294967295を合わせた 6442450942 (6ギガぐらい) が、GetFileSizeで得ることができる 最大ファイルサイズですか?

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>教えてくれた2の64乗バイトとはGetFileSizeで得ることができる最大ファイルサイズのことですか? そうです。 32bitの数値を2つ使って64bitの数値を表すのですから。 正確には FFFFFFFFFFFFFFFF = 2の64乗 - 1 =18446744073709551615 となります。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>そうすると、返り値で得られる最大サイズは0111ですか? いいえ、1110です。 >第2引数を使った場合は、0111と1111を合わせたものが最大サイズで いいえ、11111111です。 GetLastErrorで成功、失敗を判断する必要があります。 >10進数だと、2147483647と4294967295を合わせた >6442450942 (6ギガぐらい) が、GetFileSizeで得ることができる >最大ファイルサイズですか? なぜ足し算するんですか? 2の64乗バイトでは? FFFFFFFFFFFFFFFFバイトですよ。

A__
質問者

補足

足し算したのは勘違いでした。 教えてくれた2の64乗バイトとはGetFileSizeで得ることができる最大ファイルサイズのことですか?

関連するQ&A