ファイルサイズが〇〇ビットになることはあり

Writer: admin Type: arte Date: 2019-01-08 00:00
ファイルサイズが〇〇ビットになることはありますか?ファイルはだいたい〇〇バイトで、バイト単位(8bit単位)ですが、もし、(例0001010111(10bit)このように、8bit単位ではなく、10bitなど中途半端なファイルってありますか?それとも、(例0001010111 000000(16bit=2Byte)のように、0でパディングされるのですか?共感した0###ファイルサイズの記録単位はバイトです。したがって、8ビット単位での記録ということになります。10bitのデータをファイルとして保存する際の余り領域をどうするかは、ファイルの問題ではなく、プログラムの作りの問題です。プログラムとして簡単なのは、0パディングになるでしょう。サンプリングデータのように、10bitデータが連続する場合であれば、連結して最後の余りだけに、0パディングする方法でも構わないでしょう。繰り返しになりますが、これはファイルの問題ではなくて、プログラムをどう作るかの問題で、その実装に任されるのです。また、ファイルサイズとディスク上のサイズは別です。アロケーションユニットサイズ(別の呼び方をされることもありますが)といい、ディスク上では、ファイルに対して、このアロケーションユニットサイズ毎に領域を割り当てます。ファイルサイズが2Bであっても、仮にアロケーションユニットサイズが、4KBであれば、ディスク上では4KB(4096B)消費をすることになります。この場合は、4094Bが無駄になるということです。このアロケーションユニットサイズは、ファイルシステムやそのボリュームサイズ、また、フォーマット時の設定によって異なります。既に回答があるように最小でも512Bというのが多かったように思います。また、今は、4KBというのも多いはずです。したがって、データファイルを作る際は小さなファイルをたくさん作るより、プログラム内でデータをまとめて、ある程度大きなデータファイルにする方が、一般的には良いとされます。ナイス0
###この質問は投票によってベストアンサーに選ばれました!###ビットストリームを不揮発媒体に記録することはよく行われます。その不揮発媒体はOSでファイルシステム(バイト単位)として管理されていることも少なくありません。そのような場合はファイルに書き込みます。そしてビットストリームは一旦バイトストリームに変換してからでしか書き込めません。(読むときはその逆でバイトストリームとして読み込んだ後にそれをビットストリームに変換します)8の倍数でない長さのビットストリームの末尾を残りを0でパディングするのか、長さ情報をどのように扱うかなどはそのプログラムが決めることです。ナイス0
###既にご回答もあるので蛇足....ファイルフォーマットによっては、最小データサイズのファイルであっても、実際に、HDDで占有するサイズは、HDDの論理フォーマットに依存をするので、大きなサイズとなるので、ファイル数や、フォルダ数が、ファイルフォーマットの上限に達していないし、実際の、ファイルの中身の合計データ量は多く無いのに、HDDがパンクするなんて事が....最小で無くても、小さめなサイズのファイルの扱いが膨大になるなんて場合、考えずにシステム設計すると、思わぬ落とし穴....今どきのファイルフォーマットと、巨大サイズのHDDでは、まずパンクも無いでしょうけど、小さいファイルサイズ、膨大なファイル数を扱うと、効率が悪いのは確かです。ナイス0
###Windowsのファイル出力APIの単位がバイトなので、バイト未満の長さのファイルは作れません。WriteFile関数https://msdn.microsoft.com/ja-jp/library/cc429856.aspx>nNumberOfBytesToWrite>ファイルに書き込むべきバイト数を指定します。ナイス0
###>ファイルサイズが〇〇ビットになることはありますか? ないですね512B単位でしか保存できませんですからファイルサイズの最低は512バイトです1バイトのデータを保存しても最低単位512バイトずつでしかアクセスできないため512バイトの領域を1バイトだけ使って残りの511バイトはゴミと計上されますナイス0
###バイナリファイルではビット単位ですね。ナイス0

 

TAG