テスト前の最後ということで、プログラミングの基礎としての基本計算機能としての、 bit演算子の説明と、数値の意味を理解するための情報量の計算について説明した。
bit演算子
bit演算子としては、&(AND),|(OR),^(EXOR),~(NOT)の説明を行い、 以下のようなプログラムも交え論理演算子との違いも強調する。
printf( "%d" , 3 && 5 ) ; // 0以外が表示 printf( "%d" , 3 & 5 ) ; // 0011 and 0101 = 0001
これに加え、<< , >> といったビットシフト演算子を示したり、 bit演算子による負数などを説明する。
printf( "%d" , (~3)+1 ) ; // -3が表示。bit反転+1=2の補数
情報量
確率の逆数の和といった説明は5年の授業に残しておいて、 0~255の256通りは、8bitで覚えることができる…といった説明から、 R,G,B各色256諧調の640x480dotの画面を覚えるのに、どれだけのメモリが必要か? とか、 0~65535の音の大きさ、ステレオで、サンプリングレート44.1KHz、74分のデータを 覚えるために、どの程度のメモリが必要か?
ネタとして、74分の理由を説明したけど、Webを調べると色々な説が紹介されている。 ググったトップのネタだと、 CDの規格を決めた人が規格を正当性を主張するためにハッタリでカラヤンの名前を出したという記事が… ということで、諸説はっきりしないみたいだな…