...

PDF版

by user

on
Category: Documents
16

views

Report

Comments

Description

Transcript

PDF版
プログラミング演習
プログラミング演習II
2004年5月19日(第5回)
理学部数学科・木村巌
ビットとバイト
1bitとは、2進表記一桁で表現できる情報量のこ
と
™ 端的にいうと、0か1.
™ 1byteとは、8bitのこと.つまり、0, 1が8桁.
™ (00000000)から、(11111111)まで、256通りの組
み合わせがある
™ キロバイト(KB)、メガバイト(MB)、ギガバイト
(GB)、テラバイト(TB)
™ 教科書p.51参照
整数型の詳細
™ 教科書p.49の表3-1参照
™ int型は、short,
指定なし, longの三種類の大き
さと、signed, unsignedの符号の有無の区別が
ある.
™ 略記:short intはshort, long intはlongと略記可能
™ sizeof 演算子……sizeof(型名)で、型が占める
メモリの大きさを返す
整数型の大きさ
™
™
™
™
™
™
™
/* sizeofint.c */
#include <stdio.h>
int
main(void)
{
™ printf (“short %d¥nint %d¥nlong %d¥n”,
™
sizeof (short), sizeof (int), sizeof (long));
™ return 0;
}
コンパイル・実行してみよう.
整数型の大きさ(続き)
™ 現在の主要な環境では
™ Short:
2byte, int: 4byte, long int: 4byte
™ C99ではlong longも定義されており、8byte
™ となることが多い.
™ 個々のサイズがANSI Cで定義されているわけで
はない!定義では、
™ 2≦sizeof(short)≦sizeof(int)≦4≦sizeof(long)
™ limits.hに個々の値の上下限が定義されてい
る(ANSI Cの要請)
22の補数表現
の補数表現
™ 符号付整数のビット列としての表現法
™ 正の整数:単純に2進表現する
= (0), 1 = (1), 2 = (10), 3 = (11), ……
™ nビットでのとき、n-1ビット使える.0∼2^(n-1)-1
™ 例:0
™ 負の整数:すべてのビットの補数を取り(1を0
に、0を1にする)、更に1加える
™ 例:-1→(000…0001)ー[補数]→(111…1110)ー[1加
える]→(111…1111) = -1.
22の補数表現(続き)
の補数表現(続き)
™ 負の最大値(100…000)または-2n-1に相当する
正の整数は存在しない.この値が負にされて
も、同じ値になる.
™ 符号付整数のビット列としての表現には、他
に
™ 1の補数表現
™ 符号ビットを独立に持つ表現
™ がある.正の整数の表現はどれも同じ.
22の補数表現の補足
の補数表現の補足
™ 負の整数:すべてのビットの補数を取り(1を0
に、0を1にする)、更に1加える
™ 例:-1→(000…0001)ー[補数]→(111…1110)ー[1加
える]→(111…1111) = -1.
™ どうしてこれでよいのか?
™1
+ (-1) = (000…0001) + (111…1111) =
(000…0000) = 0.
™ ただし、最後の桁上がりは無視する
22の補数表現の補足(続き)
の補数表現の補足(続き)
™n
bitの2の補数表現では、n-1 bit使って、0から
2n-1-1を表現
™ 負の数-aは、2n – a として表している:
= 3のとき、-3は、23 – 3 = (100) – (011) = (101). 補
数表現の求め方と一致している.
™n
22の補数表現の補足(続き2)
の補数表現の補足(続き2)
™ 利点:一番上の桁を見ただけで、正負が判断
できる.
™ 一番上の桁が0なら正、1なら負
まとめ
™ 数値型の詳細(表現できる数の範囲)につい
て学んだ
™ 負の整数の表現方法として、2の補数表現に
ついて学んだ
レポート課題
16bitで何通りの情報が表現できるか?
™ 問2 同じく4byteで何通りの情報が表現できる
か?
™ 問3 10bitの2の補数表現で、10進の31, 96, 127, -257の2進表記を与えよ
™ 締め切り:2004年5月25日一杯(日本時間で)
™ 提出先:メールで木村([email protected])まで.
™ 問1
Fly UP