////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz

    送信日： 2003/11/03(Mon) No.230
    配信数： 2750 ( Mag2 + Pubzine )
＊    発行元： まぐまぐ ( URL: http://www.mag2.com/  ID: 0000012198 )
＊    発行元： Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*                ２００３年１１月３日（月）の更新                */
http://www.kab-studio.biz/index.html

・ほとはー１話追加
　三人合体ホットハーブに１話追加。こーゆーオチはウケが良くないか
も……。
[ 三人合体ホットハーブ ]
http://www.kab-studio.biz/Comic/HotHerb/index.html

・KAB-studio.h 縮刷版更新！
　KAB-studio.h が２３０号に達したので縮刷版を更新します。縮刷版のダ
ウンロードはダウンロードルームにて。
[ ダウンロードルーム ]
http://www.kab-studio.com/Freeware/index.html#MailMagazine

・１１月表紙壁紙……はもちょっと待って
　表紙壁紙について色々検討中。来週には結論を出しますです。


////////////////////////////////////////////////////////////////////
/*                        ちょお普通な日記                        */
http://www.kab-studio.biz/nikki2/index.html

2003/10/26 (Sun)
　ほとはー１話描いてからお仕事。 .jar の順番を変えるって……。チルト
ホイールマウスはなぜ NT4 に対応してないん？

2003/10/27 (Mon)
　かぶヘッダーの送信予約を忘れてしまった……。仕事が忙しいのは言い訳
だから忙しいんで忘れました。名刺切れてた……。 VESA100 アダプタ入
荷。仕事が山積み過ぎ……。

2003/10/28 (Tue)
　設計担当の人。作られたフレームワーク。その準備と移動に終止。ふもっ
ふ最高！　液晶ディスプレイｘ２他出費が痛い。そう考えると簡単にマンガ
に専念って難しい……。

2003/10/29 (Wed)
　他の人のフォローが好き？　性格的にはひとりでいるのがいいんだが。仕
事がやばい……。あれどうする？

2003/10/30 (Thu)
　昨日はそのまま寝ちゃった。明日のレビューのための準備で忙しい。久々
帰りに横浜へ。

2003/10/31 (Fri)
　設計担当のコードレビュー………………。直感指向のわて。性格合わない
です。もえたん延期。ホットカーペット購入。冬コミのネタはほとはー掲示
板とほとはープリンテッド？

2003/11/01 (Sat)
　無駄な１日。秋葉原行って VESA100 アダプタとザウルス用ケーブルを購
入。秋葉原のカレー。帰ってから昼寝。結局アダプタ付けられず、もう１つ
購入。手首痛める。シュガーＤＶＤ良かった。ほとはーは描いたけど表紙壁
紙は……。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
http://www.kab-studio.biz/Novel/Fuga/index.html

■　第九章　四人　−７−

　鷹人と穂香に注視していた白葉は、雅樹が赤葉と目配せしていたことに気
付かない。
『炎よ！！』
　赤葉の声と共に白葉の周りに炎が立つ。
『！？　静まれ！』
　立ち上った炎が粉々に砕け消える、と同時に首筋に刃が当てられる。
「！」
「雅樹、おまえ！！」
　白葉の背後に立つ雅樹は、鷹人と穂香に向かって言う。
「早く、みんな連れて逃げろ」
「なに！？」
「お願いだから！」
　雅樹の側に来る赤葉も言葉を添える。
「赤葉！　なぜおまえまでもが！」
「ごめんなさい、おばあちゃん。でもね……無理にここに残る必要はないと
思うの。戦争が終わったら、また戻ってこれるかもしれないし」
「ならん！　それだけはならん、泉が果てればもう誰もここには戻ってはこ
ん！」
「それだっていいじゃんか、みんな生きてれば」
「良くない！！」
　大声で反論する白葉、後ろでなんとか説得しようとする雅樹と赤葉。その
前で、鷹人と穂香が逡巡していた。
「……鷹人、どうするの？」
「穂香は？」
「鷹人が決めて」
　けれども、ふたりは互いに意見が違う事を知っていた。穂香は退却を望
み、鷹人は泉を護るべきだと考えていた。だから、言葉が出ない。
　鷹人は、上を見上げた。
                                                              (続く)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
『表紙壁紙、どうなっちゃうの！？』
「今、色々と検討中みたい」
『なんで？』
「一番の理由は、描くのに時間が掛かること」
『２日くらい掛けて描いてるもんねぇ、掛かるよねぇ』
「次に、定期更新が必要なこと」
『え？　そう？』
「季節物だと」
『そういえば、冬に今の紅葉のは使えないよね……』
「でも、壁紙自体は結構人気あるんだよね」
『アクセスログ見ると、今年１月のが今週２７ヒット。結構あるじゃん』
「その辺の折り合いをどうつけるか、かな」
『１クールに１度でいいんじゃないの？』
「うーん……」
http://www.kab-studio.biz/
_______________________________________________________________[KCM]

////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

　Version 12.07
浮動小数点のまとめ

「では、ここまでをまとめます」
『かなり複雑だったものね……』
「まず、 VC では実数、つまり小数点付きの数を〈浮動小数点〉って呼びま
す」
『小数点がずれる、ってことね』
「そう。小数点を固定した【仮数部】と、小数点をずらす数【指数部】のふ
たつで実数を表す方法が、浮動小数点」

仮数部：
　小数点を取り除いた数。
指数部：
　小数点の位置を示す数。

『計算だと、仮数部の方が重要だから別にする、ってことでいいんだよね』
「それもあるし、この方法ならすごく大きな数や小さな数も表せるからね。
小数点が固定だと桁数が決まっちゃうから」
『 int とかそうだもんね』
「で、浮動小数点を入れられる型は、 VC だと double と float がありま
す」
『 double は float の倍入るんだよね』
「倍、ってのは微妙に違うかも。確かに float は 4 バイト、 double は
8 バイトだけど、中のビットは違うんです」

float
　仮数部： 23 ビット
　指数部： 8  ビット

double
　仮数部： 52 ビット
　指数部： 11 ビット

『あ、指数部はそんなに増えてなくて、仮数部がだいぶ増えてるね』
「 float の指数部は 8 ビット＝ 1 バイト。 1 バイトってことは整数で考
えると char と同じ。ってことは 0 から 255、つまり float の指数部は 
2 の 255 乗まで使えます」
『んー、じゃあ double だと 11 ビット……って、きれいにいかないね』
「 Version 4.03 ( No.053 ) で説明したでしょ、 2 を掛けていけばいいん
だから。というか 2 の 11 乗すればいいから」
『あ、そっか……ってことは 2048 ？　あ、 0 からだから 2047 か』
「そう。つまり 3 ビット増えただけでそれだけ増えるし、指数はそれだけ
あれば十分だから」
『その分仮数部に割いてるわけね』
「そういうこと。あと、上のには書いてないけど、最初のビットは正負のフ
ラグ」
『これは両方とも同じね』
「で、その後ろに指数部が来て、その後ろに仮数部。これで浮動小数点を表
してるわけです」
『……でもさ、なんか説明聞いた感じだと、浮動小数点〜って感じじゃない
かも』
「確かに１０進数とは違うからね、浮動小数点って言葉にそれほどこだわら
ない方がいいかも。前々回に見たように〈小数点のずれ〉を表すのは指数部
なんだけど、この指数部が 2 の乗数だから」

...
0111111 1101 :  2 の -2 乗 :  0.25
0111111 1110 :  2 の -1 乗 :  0.5
0111111 1111 :  2 の  0 乗 :  1.0
1000000 0000 :  2 の  1 乗 :  2.0
1000000 0001 :  2 の  2 乗 :  4.0
1000000 0010 :  2 の  3 乗 :  8.0
1000000 0011 :  2 の  4 乗 : 16.0
...

「って感じに変わられても」
『小数点が移動してるって感じ、しないね……』
「このあたりが、 Version 12.04 ( No.227 ) で〈これから説明するのは簡
単な概念で、正確な内容じゃないから〉って言った理由」
『 10 の乗数とはえらい違いだものね』
「ただ、根本的な考え方は同じ。 2 進数の時にはちゃんと小数点が動いて
るわけだから」
『……でもイメージできない』
「あ、限定的にならできるよ。 1 以上の整数に限れば」

0111111 1111 :  2 の  0 乗 :  1.0 : 0001
1000000 0000 :  2 の  1 乗 :  2.0 : 0010
1000000 0001 :  2 の  2 乗 :  4.0 : 0100
1000000 0010 :  2 の  3 乗 :  8.0 : 1000

『お、ずれてるずれてる！』
「指数部は２進数でのこのずれを表してる、ってところかな」
『で、仮数部はその間を、ってことね』
「そう。たとえば 2.0 と 4.0 の間は」

0000 00000000 2.0000000
0100 00000000 2.5000000
1000 00000000 3.0000000
1100 00000000 3.5000000
0000 00000000 4.0000000

『 1/2 や 1/4 を足して、間の数を作っていくんだよね』
「だから、きっちりした間じゃない微妙な数は正確には表せません。たとえ
ば、 2.0 から 3.0 の方に近づいて近づく値」

0000 00000000  2.0000000
0000 00010000  2.0078125
0000 00100000  2.0156250
0000 01000000  2.0312500
0000 10000000  2.0625000
0001 00000000  2.1250000
0010 00000000  2.2500000
0100 00000000  2.5000000
1000 00000000  3.0000000

『仮数部のビットが右の方に行くと、かなり細かい数字になっちゃうね』
「仮数部は、こういう数字を足し合わせて作るから、たとえば 2.1 とかは」
『……それってすごく難しくない？』
「そう。仮数部が、たとえば 000 11000000 なら、  
0.0312500 + 0.0625000 = 0.09375 、これだと 2.1 までもう少し足さない
といけないから」
『つまり、他のビット立てて 0.00625 って数字を作らなきゃいけない……
作れるの？』
「作れないから、誤差が出るってこと」
『あー、そうなるんだよね』
「ただ、これは小数の話。整数を表すときには絶対に誤差はないから。たと
えば 128 から 192 = 128 と 256 の間の数までの場合」

0000 00000000 128.0000000
0000 00100000 129.0000000
0000 01000000 130.0000000
0000 10000000 132.0000000
0001 00000000 136.0000000
0010 00000000 144.0000000
0100 00000000 160.0000000
1000 00000000 192.0000000

『さっきと仮数部のビットが同じだけど、全部整数なんだね』
「指数部で表す数の【間にある整数】は、こうやって絶対に仮数部で表せま
す。指数部が 2 の乗数で、仮数部は 2 の分数だからね」
『そか、両方とも 2 ……２進数の世界って感じだね』
「そこがイメージの難しいところかもね。１０進数に置き換えて考えるより
も、２進数で直感的に解るようになる方がいいかもね」
『そんなことできんの？』
「 0101 は？」
『 4 + 1 で 5 』
「っていうふうにできればいいと思うよ」
『……できるのかな』
「たぶん必要ないと思う」
『……へ？』
「 int とかの整数に比べて、 double や float を直に見て計算するってこ
とはまずないと思うよ。デバッグモードで見てもバイト単位だから」

double
　仮数部： 52 ビット
　指数部： 11 ビット

「を見ればわかるように、指数部と仮数部の間は同じバイトに入っちゃうか
ら」
『げ……普通に見てもわかんないね』
「しかもバイトオーダーもあるから」
『逆に見なきゃいけない……』
「ビットフラグとかに使うこともないから、ビットと実際の数字との変換は
できなくてもいいんじゃないかな」
『……じゃあさ、今回の浮動小数点講座って、なんの意味があったの？』
「一番の目的は、誤差の説明」
『うん、誤差の原因はわかったけど』
「そうじゃなくて、火美ちゃんが説明できるように、ってこと」
『へ？』
「たとえば、計算に double を使いました。誤差が出ました、なんで？　
っていう時に〈 double だから誤差が出る〉じゃダメでしょ」
『その理由もわからなきゃいけない、説明できなきゃいけない』
「そういうこと。どういう場合に誤差が出て、どういう場合には誤差は出な
いのか、っていうことを把握するためには仕組みからわかってないと」
『確かにそうかも……』
「本当は、誤差が出る場合の代替案とかも出せなきゃいけないんだけど、 VC 
だとちょっと難しいからね」
『誤差が出ない方法なんてあるの？』
「１桁ずつ char で管理するとか」
『文字列ってこと？』
「それに近いかも。方法はいくらでもあるけど、実際に作るのは難しいから
ね。それと、浮動小数点の仕組みについて見てもらったもうひとつの理由
は、いろんな仕組みがあるってことをわかってもらいたかったから」
『いろんな仕組み？』
「どんな数字も int みたいになってるってイメージ、持ってなかった？」
『持ってた。 int に小数点が付いてるみたいな』
「でも実際にはそうじゃないってこと。文字コードみたいに、ひとつの表現
に対していろんな仕組みがあるのがコンピューターの世界」
『……それって全部知らないとだめ？』
「駄目ってことはないけど、知っていればそれだけ応用できるから」
『……いろんな戦術を知ってればいろんな場面に対処できる、ってこと？』
「そういうことになるね。そういう幅の広さも重要ってこと」
『ちょっと大変そうだけど……』
「ま、それは少しずつ憶えていけばいいから。最後に、浮動小数点のリファ
レンスについて。 MSDN なら【IEEE 浮動小数点表現と Microsoft 言語】
ってページに書いてあるから」
『あ、ホントだ』
「このタイトルにあるように、 VC の浮動小数点は IEEE っていう組織が定
めたものになってます」
『 IEEE って、ケーブルとかコネクタとかにあるよね』
「そう、あの IEEE 。共通規格だから他のプログラミング言語でも使えると
思うから、今回のは憶えておいて損はないと思うよ」

/*
    Preview Next Story!
*/
『たぶん』
「？」
『見えれば、難しくないと思う』
「ビットとか？」
『そう。ポインタとかもメモリ直接見れたし』
「そういえばそうかも」
『……』
「というわけで次回」
＜ Version 12.08 TEXT と BYNARY ＞
『につづく！』
「どしたの？」
『んー……なんでもない』


////////////////////////////////////////////////////////////////////
/*                ２００３年１１月１０日（月）の更新              */
http://www.kab-studio.biz/index.html

・ほとはー１話追加予定
　三人合体ホットハーブに１話追加予定。どんなに忙しくてもほとはーは休
まない！

・１１月表紙壁紙？
　表紙壁紙、存続の危機！？


////////////////////////////////////////////////////////////////////
/*                          ご注意！！                            */

・このメールを返信しないでください。
・ご意見・ご希望・ご感想は[チョー普通な日記]よりお送りください。
http://www.kab-studio.biz/nikki2/
・購読登録を解除したいときにはこのページで行なってください。
＊http://www.mag2.com/m/0000012198.htm
＊http://www.pubzine.com/detail.asp?id=000590
・解除は自分で行なってください。
・バックナンバーはこれらのページにあります。
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.biz/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.biz/Info/MailMagazine/

    (C)KAB-studio 1999 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

