計算機基礎2008 情報の単位 bit: 0か1, 2進数の1桁 byte: 8 [bit] word: 最小の情報単位 (CPUのレジスタの 自然長) 16-bit machine: 2 [byte] 32-bit machine: 4 [byte] 64bit machine: 8 [byte] half word: 2 [byte] 2進数 2を基数とした数の表現 例 01011101 (8-bitの2進数) 0 x 27 + 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = 93 (10進数) 補数 (complement) (1/3) ある数から別の数を引いた結果得られる数 基数のべき数からある数を引いたものがそ の補数 1 計算機基礎2008 補数 (complement) (2/3) 例1 (10進法の10の補数) 103= 1000 ある数 256 補数 744 例2 (2進法の2の補数) 24 = 10000 ある数 0101 補数 1011 補数 (complement) (3/3) 基数のべき数より1だけ少ない数から引い た値を「基数マイナス1の補数」と言う。 例 (2進法の1の補数) 24 = 10000 - 1 = 1111 ある数 0101 補数 1010 マイナスの表現 (1/2) 1の補数 例 (4bitの2進数の場合) 作り方:全bit反転 最上位ビット:MSB (Most Significant Bit)が符 号ビット 5 (10進数) = 0101 (2進数) -5 (10進数) = 1010 (2進数) ほとんど使用されない 2 計算機基礎2008 マイナスの表現 (2/2) 2の補数 作り方:全bit反転 + 1 最上位ビット:MSB (Most Significant Bit)が符 号ビット ほとんどのコンピュータ上で使用 例題1 4bitの2進数の場合 5 (10進数) = 0101 -5 (10進数) = 1010 (bit反転) + 1 = 1011 5 + (-5) = 0101 + 1011 = 10000 (桁上が りして5bitに) = 0000 (4bit) = 0(10進数) 3 - 4 = 3 + (-4) = 0011 + 1100 = 1111 = -1(10進数) 16進数 (1/2) 16を基数とした数の表現 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e, 1f, 20, 21, ... 例 5d 5 x 161 + d x 160 (16進数) = 5 x 16 + 13 x 1 = 93 (10進数) 01011101 (8-bitの2進数) 3 計算機基礎2008 16進数 (2/2) 表記法:前に0xを付けるか後ろにhを付ける 0x5d 5dh 2進数を4bitずつ区切れば容易に16進数に 変換 01011101 = 0101_1101 = 0x5d 整数 符号無整数: unsigned integer MSBを符号ビットとして使用しない整数 0 ~ 2n - 1 符号付整数: signed integer MSBを符号ビットとして使用する整数 -2n-1 ~ 2n-1 - 1 表現できる数の範囲 (1/3) 8-bit unsigned integer 0~255 0~28-1 0x00~0xFF signed integer -128~127 -27~27-1 127 1 0 -1 -127 -128 = 0111_1111 = = 0000_0001 = = 0000_0000 = = 1111_1111 = = 1000_0001 = = 1000_0000 = 0x7F 0x01 0x00 0xFF 0x81 0x80 4 計算機基礎2008 表現できる数の範囲 (2/3) 16-bit unsigned integer 0~65535 0~216-1 0~0xFFFF signed integer -32768~32767 -215~215-1 32767 1 0 -1 -32767 -32768 = 0111_1111_1111_1111 = 0x7FFF = 0000_0000_0000_0001 = 0x0001 = 0000_0000_0000_0000 = 0x0000 = 1111_1111_1111_1111 = 0xFFFF = 1000_0000_0000_0001 = 0x8001 = 1000_0000_0000_0000 = 0x8000 表現できる数の範囲 (3/3) 32-bit unsigned integer 0~4294967295 0~232-1 0x0000_0000~0xFFFF_FFFF signed integer -2147483648~2147483647 -231~231-1 ブール代数の概要 英国のGeorge Booleが1847年に提案 1と0の2値のみが取り扱われる 1と0は論理学の真(true)と偽(false)に対応 コンピュータ内では電圧のHigh(H)とLow(L) ンピ タ内では電圧のHi h(H)とL (L) に対応 5 計算機基礎2008 論理回路 ゲート:入力論理条件に従い1(H)か0(L)の 信号を生成するハードウェア 各ゲートに対する2進変数の入出力関係 は真理値表(truth table)で表現 基本論理ゲート:1~2の入力変数A,Bと出 力変数Cから構成 ANDゲート 論理積 (logical product) C = A・B A B C 0 0 0 0 1 0 1 0 0 1 1 1 A B C ANDゲートのMIL記号 ANDの真理値表 ORゲート 論理和 (logical sum) C = A + B A B C 0 0 0 0 1 1 1 0 1 1 1 1 A B C ORゲートのMIL記号 ORの真理値表 6 計算機基礎2008 NOTゲート (Inverter) 論理否定 (logical negation) C = A A C 0 1 1 0 A NOTの真理値表 C NOTゲートのMIL記号 NANDゲート C = A・B A B C 0 0 1 0 1 1 1 0 1 1 1 0 A B C NANDゲートのMIL記号 NANDの真理値表 NORゲート C=A+B A B C 0 0 1 0 1 0 1 0 0 1 1 0 A B C NORゲートのMIL記号 NORの真理値表 7 計算機基礎2008 XORゲート + B C=A○ A B C 0 0 0 0 1 1 1 0 1 1 1 0 A B C XORゲートのMIL記号 XORの真理値表 ブール代数の基本動作 論理積 (AND) 論理和 (OR) 論理否定 (NOT) 論理関数 論理関数はANDやORなどの基本論理 ゲートで構成される論理回路に変換可能 真理値表:n個の論理変数があれば2n個 の組み合わせ 8 計算機基礎2008 例題2 論理関数F = A・B + Cに関して以下を作 成しなさい。 真理値表 AND,, OR,, NOTを用いた回路図 例題2 解答 A 0 0 0 0 1 1 1 1 F = A・B + C B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 1 1 1 0 1 0 1 A B C F 9
© Copyright 2026 Paperzz