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

    KAB-studio.h


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

    送信日： 2003/10/13(Mon) No.227
    配信数： 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


・１０月表紙壁紙……はパス（大汗）
　ごめんなさい、１０月表紙壁紙はパスします。１１月に持ち越し……。


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

2003/10/05 (Sun)
　UML ゴールド取得〜。でもそのために転職できない……。 UML 勉強会。
新番組はグランセイザーと人魚の森。おねてぃ休暇？

2003/10/06 (Mon)
　お仕事はサポートが中心。 XSL で HTML 作成って便利。 Eclipse 使いに
くい〜。ビデオ貯まってる……。そして風雅、舞い、２回続けてでは？

2003/10/07 (Tue)
　Eclipse でコード追って仕組みを理解。オブジェクト指向テクノロジーと
やらのわりにはセッターゲッターすらない……。久々定時上がり。すてプリ
最終回。ほとはー６の７のアイディア、いいのが浮かばない……。

2003/10/08 (Wed)
　 CVS サーバーから落としてきたコードとマージ。とりあえず全部通る。
アヴェンジャーはあんま。 3D goo 。仕事が忙しい。３人増えるって話がい
つの間にかひとりくらいに（泣）。

2003/10/09 (Thu)
　来週うけもつ部分の引き継ぎ。全５層構造。でもそれぞれ別のところが
作ってると仕事押し付け合い……。ライジンオーＤＶＤ化。

2003/10/10 (Fri)
　１０時から１６時までヒアリングで何もできず。月曜休出……。ニュータ
イプ購入はパス。ガンスリンガーガールがかなりいい……。プラネテスもか
なりいい、と思ったらサンライズなんですねぇ。そして 3D goo 。グルグル
回して気持ちいい、けど検索エンジンが？？？

2003/10/11 (Sat)
　ほとはー外伝２のネーム切り。今日の一枚はボツったページ。マンガ描く
のって楽しい。自分のストーリーがマンガになるんだから。ほとはー本編。
鋼の錬金術士がいい感じだ。餓狼伝説テレビスペシャルがＤＶＤ化〜。


////////////////////////////////////////////////////////////////////
/*                         風雅、舞い                             */
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.04
浮動小数点型

「今回は、実数を入れる型について説明します」
『前回 double とか使ったよね』
「そう、 double と、あと float っていうのに実数を入れられます」

void Use_double()
{
    double d = 0.1;
    TRACE( "%.20f\n", d );
    // 0.10000000000000001000
}

「 float の例はパス。 float は double の半分のサイズだから、普段は使
わなくていいと思うよ」
『半分のサイズって、具体的には？』
「 float が４バイト、 double が８バイト」
『８……大きいね。 int が４バイトだからその倍だ』
「ま、元々 float があって、その倍だから」
『ダブル？』
「たぶん」
『たぶんって……』
「で、じゃあ float ってどういう意味かっていうと、 float も double も
併せて、実数を入れるための型を【浮動小数点型】って言います」
『ふどうしょうすうてんがた……』
「この【浮】が float ってこと」
『で、その浮動小数点型ってどういう意味？』
「その名の通り、小数点が動くって意味」
『小数点が動く？　それって 0.1 が 0.01 になっちゃうとかそういうこ
と？』
「そういうわけじゃなくて……この説明がまず難しいかも」
『う”』
「えっと、まず、これから説明するのは簡単な概念で、正確な内容じゃない
から。正確なのは次回説明するからね」
『うん、なんとなくわかればいい、ってわけね』
「そういうこと。で、その浮動小数点の概念だけど、前回の E を使った表
現を思い出して」
『普通の数字に、１０の何乗か、っていうのが E の後ろに付いた形だよ
ね』
「そう、たとえば次のような感じ」

0.1 = 1.0 E -1
1   = 1.0 E  0
10  = 1.0 E  1

『 E の 0 ？』
「 10 の 0 乗は 1 だから」
『あ、それに 1.0 をかけて 1 なわけね』
「この表現はちょっと難しいかもしれないからもう少し例をあげると」

0.125 = 1.25  E -1
500   = 5.00  E  2
30.03 = 3.003 E  1

「っていう感じに、一番左側の桁が一桁目に来るようにするのがポイント」
『つまりそうなるように小数点をずらして……ずらして？　もしかして』
「そう、それが【浮動小数点】って意味。浮動小数点型は、小数点をずらし
て一番左の数字が一桁目に来るようにして、そのずらした分を乗数として別
に書く、ってする方法を取ってるんです」
『なるほどねー』
「で、ここで用語を憶えてもらいたいんだけど、普通の数字の部分を
【仮数部】、 E の右側の乗数を【指数部】っていいます」
『かすうぶとしすうぶ、ね』
「さっきの例だとこうなります」

        仮数部
        ▽
0.125 = 1.25  E -1
500   = 5.00  E  2
30.03 = 3.003 E  1
　　　　　　　　△
　　　　　　　　指数部

「 float も double も、こういう形式で値を格納してるんです。仮数部と
指数部、それと符号を別々に」
『符号？』
「プラスかマイナスか」
『あー』
「この形式が使われる理由は、前回も言ったけど、元々は科学的な計算に使
うため」
『誤差がどうとかってゆーのね』
「そう。たとえば、縦が２メートル、横が３メートルの長方形の面積は？」
『６平方メートル』
「じゃあ、縦が２キロメートルで横が３キロメートルの長方形の面積は？」
『６平方キロメートル』
「このふたつの違いは単位。もしキロメートルに単位を合わせると、最初の
例は 0.002 キロメートルＸ 0.003 キロメートル ＝ 0.000006 平方キロ
メートルになります」
『なんかやったら小さそうだね』
「小さいから四捨五入したりすると 0 になります」
『げ！』
「っていうのはまずいでしょ」
『うん、まずい』
「単位が変わることで計算結果が変わっちゃだめ、ここで重要なのは
２ｘ３＝６っていう計算。そのために重要なのが、指数部の存在」
『指数部……あ、そっか、１０を掛けるっていうのが単位が変わるってこと
になるんだ』
「そういうこと。科学的な計算で一番重要なのは仮数部の計算結果。指数部
に関しては単位を表してるだけ」
『だから分けてるわけねー』
「この仮数部と指数部、あと符号が、 double だったら８ビットの中に特殊
な形で格納されてます。それを見るのは次回」
『……まだ半分残ってるよ？』
「というわけで、次回使う関数を先に用意します。ビットはメモリウィンド
ウとかでは見られないから、 double をビットで出力する関数を使います」

// double の中身をビットで表示します。
void OutputDoubleBit( double p_d )
{
    // double のサイズ。
    const int iDoubleSize = sizeof( p_d );

    // バイトごとのループ。
    // 後ろから見ていくのはバイトオーダーの関係です。
    for( int iF1 = iDoubleSize - 1
        ; iF1 >= 0
        ; --iF1
        )
    {
        CString cStr;
        unsigned char uch
            = ( (unsigned char *)( &p_d ) )[iF1];
        // ビットごとのループ。
        for( int iF2 = 0; iF2 < 8; ++iF2 )
        {
            CString cOneBitStr;
            cOneBitStr.Format
                ( "%d"
                , ( uch >> ( 1 * iF2 ) ) & 0x01 
                );
            cStr = pch + cStr;
        }

        TRACE( "%s ", cStr );
    }

    TRACE( "%.20f\n", p_d );
}

『中身はそれほどじゃないけど、結構長いね』
「２重ループになってるのは、外はバイトごと、中はビットごとに処理する
ようになってるから。つまり、ひとつバイトを取ってきて、その中を各ビッ
トごとに出力して、全部出力したら次のバイト、ってしてます」
『バイトオーダーって、 Version 4.07 ( No.057 ) でやった、逆順に並ん
でるってあれ？』
「そう、あれ。 int だけじゃなく float や double も逆順に並んでます。
だから、外側のループは右から見ていきます」
『中は普通に左から？』
「中も右から。でも出力はそのままだから」
『どゆこと？』

00000111（２進数）

「ならそのまま」

00000111

「って出るってこと。ビットごとは、バイトオーダーとか関係ないから難し
く考えなくていいよ」
『はーい』
「あと、ちょっと難しいと思う部分」

                , ( uch >> ( 1 * iF2 ) ) & 0x01 

「の部分をちゃんと見ておこうか」
『確かにこれは難しそう……』
「まずは >> から」
『 Version 4.05 ( No.055 ) のだね。そか、これ使うとビットひとつずら
せるんだ』
「だから、さっきのだと」

00000111 >> 0 : 00000111
00000111 >> 1 :  0000011
00000111 >> 2 :   000001
00000111 >> 3 :    00000
00000111 >> 4 :     0000
00000111 >> 5 :      000
00000111 >> 6 :       00
00000111 >> 7 :        0

「ってなります。これに 0x01 、つまり」

00000001

「を & にかけると…… & は Version 4.05 ( No.055 ) を参照」
『ビットひとつひとつ見て、同じだったら 1 なんだよね』
「そう、だから

 0000011 &
00000001 =
00000001

「とか」

    0000
00000001

「ってなります。つまり」

                , ( uch >> ( 1 * iF2 ) ) & 0x01 

『は、一番右のビットが 1 だったら 1 、 0 だったら 0 ってしてるわけ
ね』
「そういうこと。というわけで仕組みがわかったところで、次回に続く！」

/*
    Preview Next Story!
*/
「次回はいよいよ実数の中身について見てみます」
『なんかむつかしそう』
「来週はその中でも簡単な方」
『ホントに簡単？』
「……比較的」
『比較的ぃ？』
「というわけで次回」
＜ Version 12.05 double の中身・指数部編 ＞
『につづく！』
「ほら、解ってる人は簡単かどうかの比較ができないって言うから」
『ダメじゃん』


////////////////////////////////////////////////////////////////////
/*                ２００３年１０月２０日（月）の更新              */
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
*/
////////////////////////////////////////////////////////////////////

