「メモリーをケチる」の編集履歴(バックアップ)一覧はこちら

メモリーをケチる」(2010/02/19 (金) 21:37:12) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

たとえば、データーが性別とかのように2種類しかない場合、 次のようなコーディングは大変な無駄がある。 #asciiart(blockquote){ #N88BASIC Const NUM = 20 Const MALE = 1 Const FEMALE = 0 Dim s[NUM] As Byte Dim i As Long Dim i$ As String For i=0 To NUM Input i$ If i$="M" Then s[i] = MALE ELSE s[i] = FEMALE Next For i=0 To NUM If s[i] = MALE Then Print "男" Else Print "女" Next } このコードでなんの問題も無いと思った人は、 1バイトのうち7ビットは無駄になってしまうことに気づいてほしい。 次のようにすることで、メモリーにムダなくデーターを格納できる。 #asciiart(blockquote){ #N88BASIC Const NUM =20 Dim s As *Byte Dim i As Long Dim i$ As String s = calloc(1+NUM\8) For i=0 To NUM Input i$ If i$="M" Then s[i\8] = s[i\8] Or 2^(i Mod 8) As Long Next For i=0 To NUM If s[i\8] And 2^(i Mod 8) As Long Then Print "男" Else Print "女" Next }

表示オプション

横に並べて表示:
変化行の前後のみ表示: