6月16日(水)1コマ目
今日、やったこと
- 基数変換まとめのテスト
- 誤差
今日のホワイトボード
コンピュータでの誤差
コンピュータには誤差なんて発生しないように思われがちですが、データ取り扱いの特徴から誤差が発生するケースがあります。
C言語のchar型、unsigned char型
char型、unsigned char型はともに1バイト。
〇char型
符号あり。負数は絶対値の2の補数として格納。
| 2進数 | 10進数 |
|---|---|
| 1111 1111 | -128 |
| 0000 0000 | 0 |
| 0111 1111 | 127 |
〇unsigned char型
符号なし。
| 2進数 | 10進数 |
|---|---|
| 0000 0000 | 0 |
| 0111 1111 | 127 |
| 1000 0000 | 128 |
| 1111 1111 | 255 |
unsigned char型の変数に初期値1を代入し、その後+1(インクリメント)を繰り返す。
![]() |
| 図 変数valのインクリメントを繰り返すと |
変数valのインクリメントを繰り返し、その値が255(2進数では1111 1111)になったあと、さらにインクリメントするとどうなるでしょうか?
ここで時間切れ。つづきは次回。

コメント