狠狠撸
Submit Search
kagami_comput2015_3
Apr 10, 2015
0 likes
506 views
S
swkagami
1 of 14
Download now
Download to read offline
Recommended
kagamicomput201803
kagamicomput201803
swkagami
?
kagamicomput201803
kagami_comput2016_03
kagami_comput2016_03
swkagami
?
kagami_comput2016_03
kagami_comput2015_2
kagami_comput2015_2
swkagami
?
足し算をつくろう
足し算をつくろう
Yoichi Toyota
?
论理回路によってどうやって足し算が実现されているかというお话。
kagami_comput2015_4
kagami_comput2015_4
swkagami
?
kagami_comput2015_1
kagami_comput2015_1
swkagami
?
kagami_comput2015_9
kagami_comput2015_9
swkagami
?
kagami_comput2016_14
kagami_comput2016_14
swkagami
?
kagami_comput2016_14
kagamicomput201814
kagamicomput201814
swkagami
?
kagamicomput201814
kagamicomput201813
kagamicomput201813
swkagami
?
kagamicomput201813
kagamicomput201812
kagamicomput201812
swkagami
?
kagamicomput201812
kagamicomput201811
kagamicomput201811
swkagami
?
kagamicomput201811
kagamicomput201810
kagamicomput201810
swkagami
?
kagamicomput201810
kagamicomput201809
kagamicomput201809
swkagami
?
kagamicomput201809
kagamicomput201808
kagamicomput201808
swkagami
?
kagamicomput201808
kagamicomput201807
kagamicomput201807
swkagami
?
kagamicomput201807
kagamicomput201806
kagamicomput201806
swkagami
?
kagamicomput201806
kagamicomput201805
kagamicomput201805
swkagami
?
kagamicomput201805
kagamicomput201804
kagamicomput201804
swkagami
?
kagamicomput201804
kagamicomput201802
kagamicomput201802
swkagami
?
kagamicomput201802
kagamicomput201801
kagamicomput201801
swkagami
?
kagamicomput201801
kagamicomput201714
kagamicomput201714
swkagami
?
kagamicomput201714
kagamicomput201713
kagamicomput201713
swkagami
?
kagamicomput201713
kagamicomput201712
kagamicomput201712
swkagami
?
kagamicomput201712
kagamicomput201711
kagamicomput201711
swkagami
?
kagamicomput201711
kagamicomput201710
kagamicomput201710
swkagami
?
kagamicomput201710
kagamicomput201709
kagamicomput201709
swkagami
?
kagamicomput201709
kagamicomput201708
kagamicomput201708
swkagami
?
kagamicomput201708
More Related Content
More from swkagami
(20)
kagamicomput201814
kagamicomput201814
swkagami
?
kagamicomput201814
kagamicomput201813
kagamicomput201813
swkagami
?
kagamicomput201813
kagamicomput201812
kagamicomput201812
swkagami
?
kagamicomput201812
kagamicomput201811
kagamicomput201811
swkagami
?
kagamicomput201811
kagamicomput201810
kagamicomput201810
swkagami
?
kagamicomput201810
kagamicomput201809
kagamicomput201809
swkagami
?
kagamicomput201809
kagamicomput201808
kagamicomput201808
swkagami
?
kagamicomput201808
kagamicomput201807
kagamicomput201807
swkagami
?
kagamicomput201807
kagamicomput201806
kagamicomput201806
swkagami
?
kagamicomput201806
kagamicomput201805
kagamicomput201805
swkagami
?
kagamicomput201805
kagamicomput201804
kagamicomput201804
swkagami
?
kagamicomput201804
kagamicomput201802
kagamicomput201802
swkagami
?
kagamicomput201802
kagamicomput201801
kagamicomput201801
swkagami
?
kagamicomput201801
kagamicomput201714
kagamicomput201714
swkagami
?
kagamicomput201714
kagamicomput201713
kagamicomput201713
swkagami
?
kagamicomput201713
kagamicomput201712
kagamicomput201712
swkagami
?
kagamicomput201712
kagamicomput201711
kagamicomput201711
swkagami
?
kagamicomput201711
kagamicomput201710
kagamicomput201710
swkagami
?
kagamicomput201710
kagamicomput201709
kagamicomput201709
swkagami
?
kagamicomput201709
kagamicomput201708
kagamicomput201708
swkagami
?
kagamicomput201708
kagamicomput201814
kagamicomput201814
swkagami
?
kagamicomput201813
kagamicomput201813
swkagami
?
kagamicomput201812
kagamicomput201812
swkagami
?
kagamicomput201811
kagamicomput201811
swkagami
?
kagamicomput201810
kagamicomput201810
swkagami
?
kagamicomput201809
kagamicomput201809
swkagami
?
kagamicomput201808
kagamicomput201808
swkagami
?
kagamicomput201807
kagamicomput201807
swkagami
?
kagamicomput201806
kagamicomput201806
swkagami
?
kagamicomput201805
kagamicomput201805
swkagami
?
kagamicomput201804
kagamicomput201804
swkagami
?
kagamicomput201802
kagamicomput201802
swkagami
?
kagamicomput201801
kagamicomput201801
swkagami
?
kagamicomput201714
kagamicomput201714
swkagami
?
kagamicomput201713
kagamicomput201713
swkagami
?
kagamicomput201712
kagamicomput201712
swkagami
?
kagamicomput201711
kagamicomput201711
swkagami
?
kagamicomput201710
kagamicomput201710
swkagami
?
kagamicomput201709
kagamicomput201709
swkagami
?
kagamicomput201708
kagamicomput201708
swkagami
?
kagami_comput2015_3
1.
東北大学 工学部 機械知能?航空工学科 2015年度
5セメスター?クラスD 計算機工学 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 3. 数の表現 ― 符号つき整数 (教科書1.2節)
2.
2鏡 慎吾 (東北大学):
計算機工学 2015 (3) 負の数の表現 素朴な方法 (符号と絶対値法) 通常我々は,10進数の絶対値の前に – をつけて負の数を表す. 同様に,最上位ビットで符号を表し,残りで絶対値を表せばよい 10111011 符号ビット: 0: 正 1: 負 絶対値 問題点: ?ゼロの表現が2通り存在する ?加減算が煩雑になる → 通常は,2の補数表示と呼ばれる方式が用いられる
3.
3鏡 慎吾 (東北大学):
計算機工学 2015 (3) 「2の補数」表現による符号つき数 111 7 110 6 101 5 100 4 011 3 010 2 001 1 000 0 3ビットの場合: 2進のビット列 符号なし数 -1 -2 -3 -4 3 2 1 0 2の補数表現による符号つき数 000から1ずつ減らして行ったと きの表現を素直に考えるとよい ? 一般にnビットの場合, – 2n-1 ~ (2n-1 – 1) の範囲の数を表せる ? MSBが1であれば,負 の数である C言語では,各種の整数型に符号 なし,符号つきの種類がある. signed int, unsigned int signed short, unsigned short signed char, unsigned char
4.
4鏡 慎吾 (東北大学):
計算機工学 2015 (3) 2の補数の定義 n ビットの 2 進数において,ある数 x の 「2の補数 (2’s complement)」とは, 2n – x である (8 ビットなら,256 – x になる) 2の補数表示による n ビットの符号つき数とは, ? 非負の数 x (0≦x ≦ 2n–1 – 1) を x の符号なし2進表示で, ? 負の数 –x (0 < x ≦ 2n–1) を x の「2の補数」,すなわち (2n – x) の符号なし2進表示で 表したものである
5.
5鏡 慎吾 (東北大学):
計算機工学 2015 (3) 2の補数が使われる理由 01111010 = 122(10) +) 11111111 = -1(10) 101111001 = 121(10) なぜこのようにうまく行くのか? → 循環しているのがミソ 8ビットの場合,28を足すと一巡して元の数に戻る 28 – 1 を足すと,元の数より 1 少ない数に落ち着く 28 – x を足すと,元の数より x 少ない数に落ち着く (= 減算) (符号と絶対値法だと,数の並ぶ順序が変わってしまうのでこうはいかない: 0, 1, 2, …, 126, 127, -0, -1, -2, …, -126, -127) はみ出したビットは捨てる 符号を気にせず加算?減算を実行することができる
6.
6鏡 慎吾 (東北大学):
計算機工学 2015 (3) 例題 ファミリーコンピュータ用ゲーム「スーパーマリオブラザーズ」(任 天堂(株), 1985年) には,「無限1up」「無限増殖」などと呼ばれる テクニックが存在したことが知られている.すなわち,ある操作を 行うことで,プレイヤストック数 (ゲームオーバになるまでに許容さ れるミスの回数,残機数) を際限なく増加させ続けることが可能で あった. 一方,プレイヤストックを一定数以上に増やしすぎると,その後 たった一度のミスでゲームオーバになってしまうという現象も生じ た.内部でどのような処理が行われていたか推測して述べよ.
7.
8鏡 慎吾 (東北大学):
計算機工学 2015 (3) 2の補数表現の符号つき数の操作 ? 加減算 ? 加算はそのまま計算するだけだということが分かった ? 減算は,『引く数」に負号をつけて2の補数で表し,加算を 実行すればよい: 100 – 30 = 100 + (-30) ? では,符号反転を行うには? ? 符号反転(2の補数変換) ? 「ビットを反転して1を足す」 ? 2の補数表現 と 普通の10進正負の数の相互変換
8.
9鏡 慎吾 (東北大学):
計算機工学 2015 (3) 符号反転 x = 30 (10) → 00011110 (2) -x = -30 (10) → ? (2) x の2の補数 = 2n – x = (2n – 1) – x + 1 111…111 (1がn個並んだもの) 11111111 -) 00011110 11100001 繰り下がりが起きない! 結局 1 と 0 を反転させるだけ (「1の補数」と呼ばれる) それに1を足すと,符号反転結 果が得られる 11100001 +) 00000001 11100010 結論: 符号反転をするには,各ビットを反転し,1を加えればよい 正→負,負→正 のどちらでもOK (∵2n – (2n - x) = x)
9.
10鏡 慎吾 (東北大学):
計算機工学 2015 (3) 10進の正負の数との変換 10進 → 2進: ? 絶対値を2進数で表現 ? 正の数であれば,それで終わり ? 負の数であれば,符号反転処理 2進 → 10進: ? MSBが0か1か? ? 0であれば非負なので,そのまま10進数へ変換 ? 1であれば負なので, ? 符号反転処理をしてから10進数へ変換し,負号を つける ? または,まず10進数へ変換して,それを2nから引 いて,負号をつける
10.
11鏡 慎吾 (東北大学):
計算機工学 2015 (3) 例題 1. 10010110 (2進8ビット,2の補数表現の符号つき数) を10進 数に変換せよ 2. –50 (10進数) を 8 ビットの2の補数表現の符号つき2進数で 表せ.
11.
12鏡 慎吾 (東北大学):
計算機工学 2015 (3) 例題 解答例 1. MSB = 1なので負の数である. 方法1) まず符号反転処理してから10進に変換し,負号をつける 10010110 → 01101001 +) 1 01101010 → 106 → -106 方法2) まず10進数に変換して,それを256から引いて負号をつける 10010110 → 01101001 +) 1 01101010 → 106 → -106 10010110 (正数だと思って変換) → 150 → -(256-150)= -106 2. 50 を符号反転する.50 = 32 + 16 + 2 = 00110010(2) なので, 11001101 + 1 = 11001110
12.
13鏡 慎吾 (東北大学):
計算機工学 2015 (3) 符号拡張とゼロ拡張 あるビット長の2進数を,より長いビット長の2進数に変換すると き,MSB 側を符号ビットで埋める方法を符号拡張と呼ぶ.2の 補数表示の符号つき数の拡張の際に用いられる. 11111111 11111000 = –8(10) 11111111 11111111 11111111 11111000 00000000 00001000 = 8 (10) 00000000 00000000 00000000 00001000 16ビットから32ビットへの符号拡張の例: これに対して,常にゼロで埋める方法をゼロ拡張と呼ぶ.符号 なし数の拡張に用いられる. = 8 (10) = –8(10) (–8 : 「あと8 増やせば 2n になる数」)
13.
14鏡 慎吾 (東北大学):
計算機工学 2015 (3) 練習問題 8ビットの符号つき数 (a) 00101100 (b) 11101101 (c) 10100101 をそれぞれ, 1) 10 進数,16進数で表せ 2) 符号を反転した数を,2の補数表示の符号つき数で表せ 3) 16ビットに符号拡張せよ 4) (a) を 3ビット右シフトし,元の数の8分の1になっている かどうか調べよ.
14.
15鏡 慎吾 (東北大学):
計算機工学 2015 (3) 練習問題 解答例 1) 10進数: (a) 44 (b) – 19 (c) – 91 16進数: (a) 2c (b) ed (c) a5 2) (a) 11010100 (b) 00010011 (c) 01011011 3) (a) 00000000 00101100 (b) 11111111 11101101 (c) 11111111 10100101 4) 000000101 (44/8 の小数点以下切捨てになっている) 1) 正の数は普通に変換する.負の数は,10進にしてから 28 から引くか,符号 反転してから10進にするか.どうせ(2)で符号反転するんだから,後者の方 が楽かも. 2) ビット反転して 1 を足す. 3) MSBで拡張する. 4) 定義どおり計算.