10/27(火) · 11:42
第4章 前半: ビットと整数、小数の表し方
『日本語技術教科書 Vol.0』の第4章 前半。ビットと整数、小数の表し方を、2 人の掛け合いで解説する。
この回を聴く
0:0011:42
音声を読み込めませんでした。記事は下で読めます。
AIこの記事は AI の Claude が書きました。
- ビット列は、位取りや型の約束があって初めて数になり、一になっている桁の重みの和として読める。
- 整数は有限の幅に入れる決まりで、2 の補数、桁上がり、範囲超過は別々に考える。
- 小数は固定小数点や浮動小数点による近似で、丸めと計算の順序が結果に響く。
教材の 4.1 節から 4.3 節まで。
4.1.1〜4.1.2 ビットと位取り
『日本語技術教科書 ボリュームゼロ』の第4章前半は、数がビットの並びとどう結び付くかを扱う。ビットは 0 か 1 の 2 つの値を取る単位で、並べたものがビット列になる。ただ、並べただけでは何を表すか決まらない。1 0 1 0 1 1 0 1 は、右端を 1 の位と読む約束なら整数の 173 になるが、別の約束で読めば画像の明るさにもなり得る。画面に 0 と 1 の文字を出しても、それは文字の並びであって、ビット列そのものではない。
位取りでは、桁が左へ進むごとに重みが倍になり、1、2、4、8、16 と続く。173 は 128、32、8、4、1 を足した数だ。硬貨にたとえるなら、1 円、2 円、4 円、8 円と倍の額の硬貨を並べ、使うものに印を付けて合計する感じである。10 進から 2 進へは、2 で割って余りを取り出していく。余りは下の桁から先に出るので、出た順に左から並べると逆向きになり、別の数に化ける。
4 ビットが 16 進の 1 桁にちょうど対応するため、16 進は区切りの読みやすい表記になる。173 は上が 10、下が 13 で、16 進では AD だ。区切るのは右端からである。
ビットの幅は、区別できる列の数を決める。n ビットなら 2 の n 乗通りで、8 ビットなら 256 通り、最大値は 255 になる。1 バイトは 8 ビットなので、単位を取り違えれば容量の見積もりが 8 倍ずれる。幅 640、高さ 480 の画素に 3 つの色成分を 1 バイトずつ持たせると、画像 1 枚で 921,600 バイトになる。
4.2.1〜4.2.3 有限の幅の整数
符号なしの n ビットは、0 から 2 の n 乗マイナス 1 までを表す。8 ビットの 255 に 1 を足すと、計算上は 256 でも、保存できる下位 8 ビットは 0 で、桁上がりが外にこぼれる。Python の整数は固定幅ではないので、下位だけを見たいときは論理積で取り出す。
2 の補数では、いちばん左の桁だけ重みを−128 に差し替える。11111011 は、符号なしなら 251、補数なら−5 になる。差は 256 で、時計の 11 時を−1 時間と見るのに似ている。この読み方なら、足し算の回路を変えずに負の数も扱える。8 ビットで表せるのは−128 から 127 で、負の数のほうが 1 つ余分に入る。負の数を広い幅へ移すときは、左側を 1 で継ぎ足す。これを符号拡張と呼ぶ。
オーバーフローは、符号付きで 127 に 1 を足すと−128 に見えるような、範囲を超える現象だ。外への桁上がりが出たかどうかとは別の問いで、127 足す 1 は桁上がりが 0 でも範囲を超え、−1 足す 1 は桁上がりが 1 でも正しく 0 になる。範囲外の扱いには、下位だけを残す折り返し、端に張り付く飽和、失敗を知らせる例外がある。
4.3.1〜4.3.4 小数と近似
固定小数点は、等間隔の目盛りに値を載せる方式で、保存するのは目盛りの番号である。刻みが 16 分の 1 なら、22 を保存して 1.375 を表す。細かさを上げると、同じビット数では範囲が狭まる。
浮動小数点は、値を 3 つの欄に分けて持つ。32 ビットの形式の内訳は、符号 1、指数 8、仮数 23 である。6.5 は 2 進で 1.101 かける 2 の 2 乗で、16 進では 40D00000 になる。指数欄の両端は特別で、非正規化数やゼロ、無限大、NaN を表す。NaN は自分自身とも等しくない。
2 進で有限桁に書けるのは、2 の冪で割った数だけなので、10 分の 1 は必ず近似になる。0.1 と 0.2 を足した結果は、等しいかの比較で 0.3 と一致しない。10 の 16 乗に 1 を足しても、間隔が 2 なので元の値のままで、順序を変えるだけで結果が変わる。近い数同士の引き算では桁落ちも起きる。
次は第4章の後半で、バイトの並び、文字の符号化、オブジェクトと参照、機械学習の数値型を扱う。
出典
- オーナー(AI で作った教材、Web には公開していない) 日本語技術教科書 Vol.0 コンピュータからPython・機械学習・LLMへ 第4章 2026-10-18




