今週のどこかで誕生日があるので、某証券会社の手数料が無料になる。というわけでいろいろ探した結果、ちょっとした注文を出してみた。約定できるといいな。
誕生日と言えば幼少の頃に苦い思い出(??)がある。と申しますのも、N88BASICでは文字型変数の最後に「$」をつけるのだが、サンプルプログラムで誕生日を表す変数が「TANJOU$」だったのね。誕生日から生きた日数を求めるプログラムだったんだけど、言うにことかいてTANJOU$って…ちょっとせつなかった。しかも当時は「$」が読めなくて、Sに似てて線が入ってたから濁るのかと思って心の中で「タンジョウズ」って読んでいた。LOCATEは「ロッキャッテ」。これ常識。声に出さなかったのがせめてもの救い。
まあそんだけなんだけど…こんな思い出じゃ苦かねーか。ホントに苦かったらこんなとこに書くわけがないよねぇ(苦笑)。
amazonへのリンク方法をてきとうに統一しました。 http://www.amazon.co.jp/exec/obidos/ASIN/(ISBN等のID)/ という形式にします。たぶん、これが一番短い。 (追記) 2003-11-02 26:39 あるいは読んでる人が少ないから意味ないけどアレ(amazon.co.jp)にしてもいいなぁ。…ってこんなとこでまで儲けようとすんなよ!!
ウェールズvs.オールブラックス。一時はなんと8点差までつけられてリードされたオールブラックス。最後は集中が切れたウェールズがトライを積まれて37-53で負けはしたが、前半と後半途中まではウェールズの気合いの乗ったプレーに観衆は大興奮だった。逆にオールブラックスは#11のRokocoko(ロコゾコ)が序盤にずかずかと抜いてトライを奪ったのは震えたが(解説の人もフィジーのCaucau(ザウザウ)と比べていたがもの凄まじかった。あれはヤバいよ)、Rokocokoも後半はきっちり守られて手を出せなかったし、もともとディフェンスがあまり良くなかったような感じ。決勝トーナメントでどのくらい修正できるかが問われるのではないか、と。決勝トーナメント初戦は南アフリカ。ウェールズvs.イングランドも注目だ。
イングランドvs.ウェールズ
ニュージーランドvs.南アフリカ
オーストラリアvs.スコットランド
フランスvs.アイルランド
さてどれが一番の見ものだろうか。フランスvs.アイルランドではけっこうアイルランドが行っちゃうんじゃないのというのもあるし、イングランドvs.ウェールズも熱そうだよなぁ。つーかイングランドの試合(というかC組は全く)見てないからどのくらい強いのかよくわからない。
/.-jでこう(slashdot.jp)書かれていたため、Xあの-2003-1101(asahi-net.or.jp)なるものをダウンロードしてきて試しにインストールしてみた。

スコットランドvs.フィジー。いま前半終了(6-14)。フィジーのザウザウ(2トライ)の身体能力と個人技すごいね。日本戦は出場停止だったけど、いたらやばいことになってたかもねー。 いなくても負けちゃったんだけどね。 (追記) 2003-11-01 27:46 フィジーは後半逆転されて負けてしまった。ワラビーズvs.アイルランドは双方PGを外しまくるというアレな得点経過ではあったものの、1点差のいい試合になった。なんとアイルランドのほうがIRBのランキングでは上位だったらしい。そこがワラビーズのモチベーションになるんじゃないのか、とかって解説の人が言っていた。確かにアイルランドより下とされたらオーストラリア人は怒るだろう。
ベイジアンフィルタは最終兵器ではないのか(hotwired.co.jp)な。今のところこれが最終兵器だと思っている。最近私はSPAMを全く見ない健全な生活を送りつつ、ベイズ先生に感謝の毎日である。 junkフォルダは毎日増えていっているようだけどね。充分学習したみたいだし、最近はタイトルすら確認してない。
Cで、ビット幅1のintを書くとしよう。
struct sample{
int flag:1;
};
で、この1ビットで現せる1ビット幅の整数というのは「0と1」で確定かというと実は違う。実際に確かめてみると、表現できるのは「-1と0」あるいは「0と1」の2通りがあるようだ。 #include struct sample{ int flag:1; }; int main(int argc, char **argv) { struct sample s1; s1.flag=0; printf(“0=%d\n”, s1.flag); s1.flag++; printf(“1?=%d\n”, s1.flag); if(s1.flag>0){ printf(">0\n", s1.flag); } if(s1.flag<0){ printf("<0\n", s1.flag); } return 0; }
- gcc-3.2.3とgcc-2.96では「-1、<0」。
- tcc-0.9.19では-runオプションをつけて直接実行すると「-1、>0」、コンパイルすると「-1、<0」。同じコンパイラなのに相反する結果になった。
- Sun WorkShop Compilers 5.0 98/12/15 C 5.0では「1、>0」。
「-1、<0」と「-1」と評価する処理系は一見不自然だが、トップビットが立ってる上に全部のビットが立っているし、-1というのも根拠がある。-(-1)を評価しても…えーとnegateは1を引いて全部のビットを反転するんだっけ…やっぱり-1になり、恐らく1==-1が成立するだろう。
さてどちらが正しいのか。どちらも正しいような気がする。もしかしたら不定値なのかもしれない。つまりビット幅1ならunsignedにして「1、>0」を確定させるか、不定として「!=0」であるかどうかしか判定しないか、どちらかの書き方をするしかない。もともと1ビット整数に大小関係など正確に定義することなどできないのだから。
ただ、私としてはGCCに肩入れするわけではないが、「-1」説を採りたい。理由は、そのほうが整合性があるからである。例えば2ビットで表せる符号つき整数は「-2(10)、-1(11)、0(00)、1(01)」であり、プラスになる数値よりもマイナスになる数値のほうが1つ多い。この関係はどんなビット幅のintでも同じである。ビット幅1だけを特別扱いすることはない。
ちなみにunsigned flag:1;のようにするとprintfの%d変換でも「-1」ではなく「1」になる。int:1をintにキャストしたときに-1とするか1とするかはコンパイラ依存だが、unsigned:1をintにキャストするときは必ず1になる。unsignedはトップビットで符号を判別しないしプラスにしかならないからね。役には立たないが覚えておこう。
まあでも、仕様上どうなっているのかは調べてないのでそのへんは勘弁してほしいっす。
(追記) 2003-11-02 15:03
tcc-0.9.20が出てました。試したけど0.9.19と同じだった。あと記述が間違っていた。
tccで直接実行(-runをつける)は「1、>0」ではなくて「-1、>0」でした。-1で0より大きいとはこれ如何。
米アマゾン:「書籍全文検索で売上が増加」(cnet.com)。検索の効果だけとは言えないだろうし、1週間で何がわかるってわけでもないのだが、9%は尋常じゃないな。
米Amazon.comが、同社で販売する数多くの書籍を全文検索できるツールを導入してから、まだ1週間しか経っていないが、この機能を提供し始めてから書籍の売上が増加したとの報告が出されている。
こんだけ早く出してきたってことは焦ってる面もあるのかもね。
職員のハロウィーン仮装用おもちゃ銃で大騒ぎに 米下院(cnn.co.jp)。もしかしたらハロウィーンは一年で一番危険な日(?)かも。昔、日本からの留学生で住民に問答無用で射殺された人とかもいたよねぇ。
米連邦議会の下院関連の建物で30日午後1時すぎ、議会警察がX線検査で職員のバックパックに入ったハロウィーンパーティー用仮装セットのおもちゃ銃の映像を本物の銃と勘違いした上、発見時にはすでに職員がバックパックを引き上げて立ち去った後だったため、「銃を持った男が建物内に入った」と判断。建物内への立ち入りを禁止し、特別機動隊が出動するなど、約1時間半にわたって大騒ぎになった。