SlideShare a Scribd company logo
東北大学 工学部 機械知能・航空工学科
2016年度 5セメスター・クラスC3 D1 D2 D3
計算機工学
大学院情報科学研究科
鏡 慎吾
http://www.ic.is.tohoku.ac.jp/~swk/lecture/
2. 数の表現 ― 符号なし整数
(教科書1.1節)
2鏡 慎吾 (東北大学): 計算機工学 2016 (2)
r 進数
10 進数:
0, 1, 2, … 9 の 10 個のシンボルを使って数を表す
1234 (10)
= 1 x 103 + 2 x 102 + 3 x 101 + 4 x 100
同様に,
r 個のシンボルを使って表したものを r 進数と呼ぶ
1234 (r)
= 1 x r3 + 2 x r2 + 3 x r1 + 4 x r0
シンボルの数 r を基数 (radix) と呼ぶ
3鏡 慎吾 (東北大学): 計算機工学 2016 (2)
2進数,8進数,16進数
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001
10010
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
10
11
12
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
10進数 2進数 8進数 16進数
4鏡 慎吾 (東北大学): 計算機工学 2016 (2)
10進数との変換
2進から10進: 定義どおりに計算する
10進から2進: 2のべき乗の和に分解する
2 ) 37
2 ) 18 … 1
2 ) 9 … 0
2 ) 4 … 1
2 ) 2 … 0
2 ) 1 … 0
0 … 1
1001(2)
= 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20
= 9(10)
→ 100101(2)
[方法1] 下位ビットから決めていく
37 = 32 + 5
= 32 + 4 + 1
= 100101(2)
[方法2] 上位ビットから決めていく
方法2は,2のべき乗数を暗記してい
ないとできない.しかし慣れるとこの
方が早い
5鏡 慎吾 (東北大学): 計算機工学 2016 (2)
8進数,16進数との変換
001000110101011
1001000110101011
8進数への変換: 3桁ごとに区切ってパターンを置き換える
16進数への変換: 4桁ごとに区切ってパターンを置き換える
1 0 6 5 3
9 1 a b
2進数への変換も,これらの逆の操作をするだけ
(C言語では 010653)
(C言語では 0x91ab)
6鏡 慎吾 (東北大学): 計算機工学 2016 (2)
ビットとバイト
• 2進数の1桁を bit (binary digit) と呼ぶ
• 計算機の中では,有限の桁数でデータを表現しなくては
ならない
• 基本単位: 1 byte = 8 bit (現代のコンピュータではほぼ常に)
• メモリは 1 バイトごとに区切られて,それぞれにアドレス
がついている
…
0 1 2 3 4 5 6 7アドレス
01111101
7鏡 慎吾 (東北大学): 計算機工学 2016 (2)
複数のバイトをまとめて扱う
…
0 1 2 3 4 5 6 7アドレス
…
0 1 2 3 4 5 6 7アドレス
メモリアドレス 4 に対する 2 バイト数値のアクセス
メモリアドレス 4 に対する 4 バイト数値のアクセス
8鏡 慎吾 (東北大学): 計算機工学 2016 (2)
複数ビットの呼び方
ほとんどの32
ビットプロセッ
サ
ほとんどの16
ビットプロセッ
サ(と互換性を
保つ32ビットプ
ロセッサ)
通信分野 C の型名(最近のほ
とんどの計算機の場
合)
8 bit byte byte octet char
16 bit half word word short int
32 bit word double word int
64 bit double word long long int
• 一度に処理できるサイズによって,16ビットプロセッサ,32ビットプロセッサ,
などと分類する
• プロセッサによって呼び方が違う
• C言語の型のサイズすら,計算機によって違う
9鏡 慎吾 (東北大学): 計算機工学 2016 (2)
表せる数値の範囲(符号なしの場合)
• n ビットで,2n 種類の数値を表すことができる
• nビット符号なし数: 0 ~ 2n – 1 を表す
• 8ビット符号なし数: 0 ~ 255
• 16ビット符号なし数: 0 ~ 65,535
• 32ビット符号なし数: 0 ~ 4,294,967,295
• 210 = 1024 なので,210 倍を kilo で表す場合がある.この分野では,1k
が 1024 なのか 1000 なのか注意が必要.
• 同様に,220 倍 = mega,230 倍 = giga
• 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 程度までは覚えておくと便利
• 「224 はだいたい幾つか?」 224 = 210×210×24 だから,100万の 16
倍くらい,とすぐに見当がつく
10鏡 慎吾 (東北大学): 計算機工学 2016 (2)
11鏡 慎吾 (東北大学): 計算機工学 2016 (2)
余談: 4ギガバイトの壁
32ビットプロセッサ(のほとんど)は,32ビット数を一度に操作する
ことができ,メモリアドレスも 32 ビット数で表す.
64ビットプロセッサ(のほとんど)は,64ビット数を一度に操作する
ことができ,メモリアドレスも 64 ビット数で表す.
メモリアドレスを 32 ビットで表現するプロセッサは,
4,294,967,296バイト ≒ 4.3 ギガバイト までのメモリしか扱うこと
ができない.
12鏡 慎吾 (東北大学): 計算機工学 2016 (2)
MSB と LSB
10010001 10111011
LSB: Least Significant Bit (最下位ビット)
MSB: Most Significant Bit (最上位ビット)
現在考えている桁数で最上位のビットと最下位のビットをそれぞ
れ MSB,LSBと呼ぶ.
例えば16ビットの場合,
13鏡 慎吾 (東北大学): 計算機工学 2016 (2)
算術演算
• 加算,減算,乗算,除算はいずれも 10 進数の場合と同じよう
に筆算できる
• 通常,このような筆算を自分で計算する必要はほぼない.し
かし,この原理を理解することは,演算回路の仕組みを理解
する上で重要.
• オーバフロー(あふれ)に注意する必要がある
•8 ビットで計算しているときに,255 に 1 を足すと 0 になっ
てしまう
14鏡 慎吾 (東北大学): 計算機工学 2016 (2)
加算・減算
1111
01111010(2) = 122(10)
+) 00111001(2) = 57(10)
10110011(2) = 179(10)
加算: 10進では,各桁の加算結果が9を超えると繰り上がる
2進では,1を超えると繰り上がる
減算: 10進では,繰り下がりで10を借りてくる.
2進では,2を借りてくる
0
01111010(2) = 122(10)
-) 00111001(2) = 57(10)
01000001(2) = 65(10)
15鏡 慎吾 (東北大学): 計算機工学 2016 (2)
乗算・除算
加算・減算が理解できれば,基本的には同じである
• 九九は不要; AND だけが分かればよい
0111(2) = 7(10)
x) 1101(2) = 13(10)
0111
0000
0111
0111
1011011(2) = 91(10)
1011(2) = 11 (10)
1011(2))01111010(2) = 122(10)/11(10)
1011
10001
1011
1100
1011
1 (2) = … 1 (10)
16鏡 慎吾 (東北大学): 計算機工学 2016 (2)
ビットシフト演算
unsigned short a, b, x, y; // 16 bit
a = 0x1234; // 0001 0010 0011 0100
x = a >> 2; // 0000 0100 1000 1101
b = 0xcafe; // 1100 1010 1111 1110
y = b << 3; // 0101 0111 1111 0000
シフトによって空いたビットには 0 を詰める
• 10進数: 左 k 桁シフトは 10k 倍,右 k 桁シフトは 10-k 倍
• 2進数: 左 k ビットシフトは 2k 倍,右 k ビットシフトは 2-k 倍
(ただしオーバフローが起きないことを前提とする; 端数は無視)
17鏡 慎吾 (東北大学): 計算機工学 2016 (2)
例題
ファミリーコンピュータ用ゲーム「ドラゴンクエストIV 導かれし者た
ち」((株)エニックス, 1990年) には,プレイヤがコインを購入し,ス
ロットマシンやポーカーなどのゲームにそのコインを賭けることの
できる「カジノ」と呼ばれるイベントが用意されていた.
コイン1枚は20ゴールド (ゴールドはゲーム世界における通貨単
位) で購入できたが,838861枚を指定して購入すると合計わず
か4ゴールドで買えてしまうという現象が生じた.このとき,内部で
どのような処理が行われていたか推測して述べよ.
(2009年度期末試験)
19鏡 慎吾 (東北大学): 計算機工学 2016 (2)
例題解答例
20 [ゴールド/枚] × 838861 [枚] = 16777220 [ゴールド]
きっと有限ビット長表現によるオーバフローが原因であろうと推
測してみる.
28 = 256
216 = 65536 (256 £ 256)
224 = 16777216 (256 £ 65536) ← !!
232 = 4294967296 (65536 £ 65536)
コインの対価を計算する際に 24 ビット長で計算が行われており,
オーバフローを考慮しない処理をしていたため,
16777220 – 16777216 = 4 [ゴールド] で買えたと考えられる.
20鏡 慎吾 (東北大学): 計算機工学 2016 (2)
練習問題
1. 2進数 00101100 を 10進数,16進数で表せ
2. 10進数 123 を 2 進数で表せ
3. プログラミング言語 Java のプログラムをコンパイルしたとき
に生成されるファイル(class ファイル) の最初の4 バイトをそ
れぞれ符号なしの 2 進数だとみなすと,10 進表示で順に
202 254 186 190
となることが知られている.それぞれを16 進数で表し,同じ
順に並べて書け.(2012年度期末試験)
21鏡 慎吾 (東北大学): 計算機工学 2016 (2)
練習問題 解答例
1. 00101100(2) = (32 + 8 + 4)(10) = 44(10)
= 2c(16)
2. 123(10) = (64 + 32 + 16 + 8 + 2 + 1)(10) = 01111011(2)
3. 202(10) = ca(16), 254 (10) = fe(16), 186 (10) = ba(16), 190(10) =
be(16) より,cafebabe

More Related Content

What's hot

kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6swkagami
 
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
swkagami
 
kagamicomput201704
kagamicomput201704kagamicomput201704
kagamicomput201704
swkagami
 
kagami_comput2016_04
kagami_comput2016_04kagami_comput2016_04
kagami_comput2016_04
swkagami
 
kagamicomput201703
kagamicomput201703kagamicomput201703
kagamicomput201703
swkagami
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
swkagami
 
kagami_comput2015_2
kagami_comput2015_2kagami_comput2015_2
kagami_comput2015_2swkagami
 
kagami_comput2016_10
kagami_comput2016_10kagami_comput2016_10
kagami_comput2016_10
swkagami
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806
swkagami
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
swkagami
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
swkagami
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08
swkagami
 
kagami_comput2016_09
kagami_comput2016_09kagami_comput2016_09
kagami_comput2016_09
swkagami
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12
swkagami
 
kagami_comput2016_11
kagami_comput2016_11kagami_comput2016_11
kagami_comput2016_11
swkagami
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712
swkagami
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
swkagami
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711
swkagami
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題

What's hot (20)

kagami_comput2015_6
kagami_comput2015_6kagami_comput2015_6
kagami_comput2015_6
 
kagamicomput201702
kagamicomput201702kagamicomput201702
kagamicomput201702
 
kagamicomput201704
kagamicomput201704kagamicomput201704
kagamicomput201704
 
kagami_comput2016_04
kagami_comput2016_04kagami_comput2016_04
kagami_comput2016_04
 
kagamicomput201703
kagamicomput201703kagamicomput201703
kagamicomput201703
 
kagami_comput2016_14
kagami_comput2016_14kagami_comput2016_14
kagami_comput2016_14
 
kagami_comput2015_2
kagami_comput2015_2kagami_comput2015_2
kagami_comput2015_2
 
kagami_comput2016_10
kagami_comput2016_10kagami_comput2016_10
kagami_comput2016_10
 
kagamicomput201806
kagamicomput201806kagamicomput201806
kagamicomput201806
 
kagamicomput201802
kagamicomput201802kagamicomput201802
kagamicomput201802
 
kagamicomput201710
kagamicomput201710kagamicomput201710
kagamicomput201710
 
kagami_comput2016_08
kagami_comput2016_08kagami_comput2016_08
kagami_comput2016_08
 
kagami_comput2016_09
kagami_comput2016_09kagami_comput2016_09
kagami_comput2016_09
 
kagami_comput2016_12
kagami_comput2016_12kagami_comput2016_12
kagami_comput2016_12
 
kagami_comput2016_11
kagami_comput2016_11kagami_comput2016_11
kagami_comput2016_11
 
kagamicomput201712
kagamicomput201712kagamicomput201712
kagamicomput201712
 
kagamicomput201709
kagamicomput201709kagamicomput201709
kagamicomput201709
 
kagamicomput201711
kagamicomput201711kagamicomput201711
kagamicomput201711
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
会津合宿2015Day3:D問題
会津合宿2015Day3:D問題会津合宿2015Day3:D問題
会津合宿2015Day3:D問題
 

Viewers also liked

kagami_comput2015_11
kagami_comput2015_11kagami_comput2015_11
kagami_comput2015_11swkagami
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13
swkagami
 
kagami_comput2015_12
kagami_comput2015_12kagami_comput2015_12
kagami_comput2015_12swkagami
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13swkagami
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14swkagami
 
kagami_comput2015_10
kagami_comput2015_10kagami_comput2015_10
kagami_comput2015_10swkagami
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9swkagami
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
Kiyoshi Ogawa
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
Shingo Inoue
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!
yoshikawa_t
 
フレッシュマンセミナー20060614
フレッシュマンセミナー20060614フレッシュマンセミナー20060614
フレッシュマンセミナー20060614
Takeo Kunishima
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4swkagami
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめ
Yossy Taka
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
Ryo Sakamoto
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8swkagami
 

Viewers also liked (17)

kagami_comput2015_11
kagami_comput2015_11kagami_comput2015_11
kagami_comput2015_11
 
kagami_comput2016_13
kagami_comput2016_13kagami_comput2016_13
kagami_comput2016_13
 
kagami_comput2015_12
kagami_comput2015_12kagami_comput2015_12
kagami_comput2015_12
 
kagami_comput2015_13
kagami_comput2015_13kagami_comput2015_13
kagami_comput2015_13
 
kagami_comput2015_14
kagami_comput2015_14kagami_comput2015_14
kagami_comput2015_14
 
kagami_comput2015_10
kagami_comput2015_10kagami_comput2015_10
kagami_comput2015_10
 
kagami_comput2015_9
kagami_comput2015_9kagami_comput2015_9
kagami_comput2015_9
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
HTML5クイズ!
HTML5クイズ!HTML5クイズ!
HTML5クイズ!
 
フレッシュマンセミナー20060614
フレッシュマンセミナー20060614フレッシュマンセミナー20060614
フレッシュマンセミナー20060614
 
kagami_comput2015_4
kagami_comput2015_4kagami_comput2015_4
kagami_comput2015_4
 
JavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめJavaScript 基礎文法のまとめ
JavaScript 基礎文法のまとめ
 
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
GPUが100倍速いという神話をぶち殺せたらいいな ver.2013
 
La vida
La vidaLa vida
La vida
 
kagami_comput2015_8
kagami_comput2015_8kagami_comput2015_8
kagami_comput2015_8
 
CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎
 

Similar to kagami_comput2016_02

ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803
swkagami
 
自作LSIコミュニティの可能性
自作LSIコミュニティの可能性自作LSIコミュニティの可能性
自作LSIコミュニティの可能性
Junichi Akita
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807
swkagami
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義JPCERT Coordination Center
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7swkagami
 
CRC-32
CRC-32CRC-32
CRC-32
7shi
 
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Preferred Networks
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用Ruo_Ando
 
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用Ruo Ando
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801
swkagami
 
足し算をつくろう
足し算をつくろう足し算をつくろう
足し算をつくろう
Yoichi Toyota
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
Kenta Hattori
 

Similar to kagami_comput2016_02 (20)

ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
kagamicomput201803
kagamicomput201803kagamicomput201803
kagamicomput201803
 
自作LSIコミュニティの可能性
自作LSIコミュニティの可能性自作LSIコミュニティの可能性
自作LSIコミュニティの可能性
 
計算機理論入門03
計算機理論入門03計算機理論入門03
計算機理論入門03
 
第10回 計算機構成
第10回 計算機構成第10回 計算機構成
第10回 計算機構成
 
kagamicomput201807
kagamicomput201807kagamicomput201807
kagamicomput201807
 
Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義Javaセキュアコーディングセミナー東京第2回講義
Javaセキュアコーディングセミナー東京第2回講義
 
kagami_comput2015_7
kagami_comput2015_7kagami_comput2015_7
kagami_comput2015_7
 
CRC-32
CRC-32CRC-32
CRC-32
 
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
 
文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
 
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第3回授業-Web公開用
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
 
kagamicomput201801
kagamicomput201801kagamicomput201801
kagamicomput201801
 
足し算をつくろう
足し算をつくろう足し算をつくろう
足し算をつくろう
 
5 Info Theory
5 Info Theory5 Info Theory
5 Info Theory
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
言語処理系入門€10
言語処理系入門€10言語処理系入門€10
言語処理系入門€10
 

More from swkagami

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
swkagami
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
swkagami
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812
swkagami
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
swkagami
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810
swkagami
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
swkagami
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808
swkagami
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
swkagami
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804
swkagami
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
swkagami
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713
swkagami
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708
swkagami
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705
swkagami
 

More from swkagami (13)

kagamicomput201814
kagamicomput201814kagamicomput201814
kagamicomput201814
 
kagamicomput201813
kagamicomput201813kagamicomput201813
kagamicomput201813
 
kagamicomput201812
kagamicomput201812kagamicomput201812
kagamicomput201812
 
kagamicomput201811
kagamicomput201811kagamicomput201811
kagamicomput201811
 
kagamicomput201810
kagamicomput201810kagamicomput201810
kagamicomput201810
 
kagamicomput201809
kagamicomput201809kagamicomput201809
kagamicomput201809
 
kagamicomput201808
kagamicomput201808kagamicomput201808
kagamicomput201808
 
kagamicomput201805
kagamicomput201805kagamicomput201805
kagamicomput201805
 
kagamicomput201804
kagamicomput201804kagamicomput201804
kagamicomput201804
 
kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
kagamicomput201713
kagamicomput201713kagamicomput201713
kagamicomput201713
 
kagamicomput201708
kagamicomput201708kagamicomput201708
kagamicomput201708
 
kagamicomput201705
kagamicomput201705kagamicomput201705
kagamicomput201705
 

Recently uploaded

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 

Recently uploaded (16)

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

kagami_comput2016_02

  • 1. 東北大学 工学部 機械知能・航空工学科 2016年度 5セメスター・クラスC3 D1 D2 D3 計算機工学 大学院情報科学研究科 鏡 慎吾 http://www.ic.is.tohoku.ac.jp/~swk/lecture/ 2. 数の表現 ― 符号なし整数 (教科書1.1節)
  • 2. 2鏡 慎吾 (東北大学): 計算機工学 2016 (2) r 進数 10 進数: 0, 1, 2, … 9 の 10 個のシンボルを使って数を表す 1234 (10) = 1 x 103 + 2 x 102 + 3 x 101 + 4 x 100 同様に, r 個のシンボルを使って表したものを r 進数と呼ぶ 1234 (r) = 1 x r3 + 2 x r2 + 3 x r1 + 4 x r0 シンボルの数 r を基数 (radix) と呼ぶ
  • 3. 3鏡 慎吾 (東北大学): 計算機工学 2016 (2) 2進数,8進数,16進数 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 10進数 2進数 8進数 16進数
  • 4. 4鏡 慎吾 (東北大学): 計算機工学 2016 (2) 10進数との変換 2進から10進: 定義どおりに計算する 10進から2進: 2のべき乗の和に分解する 2 ) 37 2 ) 18 … 1 2 ) 9 … 0 2 ) 4 … 1 2 ) 2 … 0 2 ) 1 … 0 0 … 1 1001(2) = 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20 = 9(10) → 100101(2) [方法1] 下位ビットから決めていく 37 = 32 + 5 = 32 + 4 + 1 = 100101(2) [方法2] 上位ビットから決めていく 方法2は,2のべき乗数を暗記してい ないとできない.しかし慣れるとこの 方が早い
  • 5. 5鏡 慎吾 (東北大学): 計算機工学 2016 (2) 8進数,16進数との変換 001000110101011 1001000110101011 8進数への変換: 3桁ごとに区切ってパターンを置き換える 16進数への変換: 4桁ごとに区切ってパターンを置き換える 1 0 6 5 3 9 1 a b 2進数への変換も,これらの逆の操作をするだけ (C言語では 010653) (C言語では 0x91ab)
  • 6. 6鏡 慎吾 (東北大学): 計算機工学 2016 (2) ビットとバイト • 2進数の1桁を bit (binary digit) と呼ぶ • 計算機の中では,有限の桁数でデータを表現しなくては ならない • 基本単位: 1 byte = 8 bit (現代のコンピュータではほぼ常に) • メモリは 1 バイトごとに区切られて,それぞれにアドレス がついている … 0 1 2 3 4 5 6 7アドレス 01111101
  • 7. 7鏡 慎吾 (東北大学): 計算機工学 2016 (2) 複数のバイトをまとめて扱う … 0 1 2 3 4 5 6 7アドレス … 0 1 2 3 4 5 6 7アドレス メモリアドレス 4 に対する 2 バイト数値のアクセス メモリアドレス 4 に対する 4 バイト数値のアクセス
  • 8. 8鏡 慎吾 (東北大学): 計算機工学 2016 (2) 複数ビットの呼び方 ほとんどの32 ビットプロセッ サ ほとんどの16 ビットプロセッ サ(と互換性を 保つ32ビットプ ロセッサ) 通信分野 C の型名(最近のほ とんどの計算機の場 合) 8 bit byte byte octet char 16 bit half word word short int 32 bit word double word int 64 bit double word long long int • 一度に処理できるサイズによって,16ビットプロセッサ,32ビットプロセッサ, などと分類する • プロセッサによって呼び方が違う • C言語の型のサイズすら,計算機によって違う
  • 9. 9鏡 慎吾 (東北大学): 計算機工学 2016 (2) 表せる数値の範囲(符号なしの場合) • n ビットで,2n 種類の数値を表すことができる • nビット符号なし数: 0 ~ 2n – 1 を表す • 8ビット符号なし数: 0 ~ 255 • 16ビット符号なし数: 0 ~ 65,535 • 32ビット符号なし数: 0 ~ 4,294,967,295 • 210 = 1024 なので,210 倍を kilo で表す場合がある.この分野では,1k が 1024 なのか 1000 なのか注意が必要. • 同様に,220 倍 = mega,230 倍 = giga • 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 程度までは覚えておくと便利 • 「224 はだいたい幾つか?」 224 = 210×210×24 だから,100万の 16 倍くらい,とすぐに見当がつく
  • 10. 10鏡 慎吾 (東北大学): 計算機工学 2016 (2)
  • 11. 11鏡 慎吾 (東北大学): 計算機工学 2016 (2) 余談: 4ギガバイトの壁 32ビットプロセッサ(のほとんど)は,32ビット数を一度に操作する ことができ,メモリアドレスも 32 ビット数で表す. 64ビットプロセッサ(のほとんど)は,64ビット数を一度に操作する ことができ,メモリアドレスも 64 ビット数で表す. メモリアドレスを 32 ビットで表現するプロセッサは, 4,294,967,296バイト ≒ 4.3 ギガバイト までのメモリしか扱うこと ができない.
  • 12. 12鏡 慎吾 (東北大学): 計算機工学 2016 (2) MSB と LSB 10010001 10111011 LSB: Least Significant Bit (最下位ビット) MSB: Most Significant Bit (最上位ビット) 現在考えている桁数で最上位のビットと最下位のビットをそれぞ れ MSB,LSBと呼ぶ. 例えば16ビットの場合,
  • 13. 13鏡 慎吾 (東北大学): 計算機工学 2016 (2) 算術演算 • 加算,減算,乗算,除算はいずれも 10 進数の場合と同じよう に筆算できる • 通常,このような筆算を自分で計算する必要はほぼない.し かし,この原理を理解することは,演算回路の仕組みを理解 する上で重要. • オーバフロー(あふれ)に注意する必要がある •8 ビットで計算しているときに,255 に 1 を足すと 0 になっ てしまう
  • 14. 14鏡 慎吾 (東北大学): 計算機工学 2016 (2) 加算・減算 1111 01111010(2) = 122(10) +) 00111001(2) = 57(10) 10110011(2) = 179(10) 加算: 10進では,各桁の加算結果が9を超えると繰り上がる 2進では,1を超えると繰り上がる 減算: 10進では,繰り下がりで10を借りてくる. 2進では,2を借りてくる 0 01111010(2) = 122(10) -) 00111001(2) = 57(10) 01000001(2) = 65(10)
  • 15. 15鏡 慎吾 (東北大学): 計算機工学 2016 (2) 乗算・除算 加算・減算が理解できれば,基本的には同じである • 九九は不要; AND だけが分かればよい 0111(2) = 7(10) x) 1101(2) = 13(10) 0111 0000 0111 0111 1011011(2) = 91(10) 1011(2) = 11 (10) 1011(2))01111010(2) = 122(10)/11(10) 1011 10001 1011 1100 1011 1 (2) = … 1 (10)
  • 16. 16鏡 慎吾 (東北大学): 計算機工学 2016 (2) ビットシフト演算 unsigned short a, b, x, y; // 16 bit a = 0x1234; // 0001 0010 0011 0100 x = a >> 2; // 0000 0100 1000 1101 b = 0xcafe; // 1100 1010 1111 1110 y = b << 3; // 0101 0111 1111 0000 シフトによって空いたビットには 0 を詰める • 10進数: 左 k 桁シフトは 10k 倍,右 k 桁シフトは 10-k 倍 • 2進数: 左 k ビットシフトは 2k 倍,右 k ビットシフトは 2-k 倍 (ただしオーバフローが起きないことを前提とする; 端数は無視)
  • 17. 17鏡 慎吾 (東北大学): 計算機工学 2016 (2) 例題 ファミリーコンピュータ用ゲーム「ドラゴンクエストIV 導かれし者た ち」((株)エニックス, 1990年) には,プレイヤがコインを購入し,ス ロットマシンやポーカーなどのゲームにそのコインを賭けることの できる「カジノ」と呼ばれるイベントが用意されていた. コイン1枚は20ゴールド (ゴールドはゲーム世界における通貨単 位) で購入できたが,838861枚を指定して購入すると合計わず か4ゴールドで買えてしまうという現象が生じた.このとき,内部で どのような処理が行われていたか推測して述べよ. (2009年度期末試験)
  • 18. 19鏡 慎吾 (東北大学): 計算機工学 2016 (2) 例題解答例 20 [ゴールド/枚] × 838861 [枚] = 16777220 [ゴールド] きっと有限ビット長表現によるオーバフローが原因であろうと推 測してみる. 28 = 256 216 = 65536 (256 £ 256) 224 = 16777216 (256 £ 65536) ← !! 232 = 4294967296 (65536 £ 65536) コインの対価を計算する際に 24 ビット長で計算が行われており, オーバフローを考慮しない処理をしていたため, 16777220 – 16777216 = 4 [ゴールド] で買えたと考えられる.
  • 19. 20鏡 慎吾 (東北大学): 計算機工学 2016 (2) 練習問題 1. 2進数 00101100 を 10進数,16進数で表せ 2. 10進数 123 を 2 進数で表せ 3. プログラミング言語 Java のプログラムをコンパイルしたとき に生成されるファイル(class ファイル) の最初の4 バイトをそ れぞれ符号なしの 2 進数だとみなすと,10 進表示で順に 202 254 186 190 となることが知られている.それぞれを16 進数で表し,同じ 順に並べて書け.(2012年度期末試験)
  • 20. 21鏡 慎吾 (東北大学): 計算機工学 2016 (2) 練習問題 解答例 1. 00101100(2) = (32 + 8 + 4)(10) = 44(10) = 2c(16) 2. 123(10) = (64 + 32 + 16 + 8 + 2 + 1)(10) = 01111011(2) 3. 202(10) = ca(16), 254 (10) = fe(16), 186 (10) = ba(16), 190(10) = be(16) より,cafebabe