プログラムってなんで動くの?
(2ページ目) 最初から読む >>
\ シェアする /
85 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:00:45.76 ID:CaeIBE3wI
>>82
なるほどw
47 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:34:33.36 ID:BGiqRoji0
分かりやすい説明できる人ってすごいな
51 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:36:53.97 ID:2WqUDmUR0
プレゼン能力ある人ってほんと尊敬するわ
54 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:38:02.66 ID:TUXpAM4w0
あんたらはどこで勉強したの?
独学?
58 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:40:57.79 ID:01Ko1dZhi
>>54
某企業でSEやってる叔父さんから
69 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:45:46.81 ID:2KuzgTTd0
メモリもスイッチっすよ
スイッチを8個並べれば 8bit スイッチの出来上がり
たとえばこのメモリに4をセットする場合は、4を2進数になおして
(00000100) あとは上からスイッチを
Off Off Off Off Off On Off Off とやれば
メモリにセット完了
左から電気を流すと、右には LLLLLHLL という信号がでるので
それにしたがって演算器は計算できる
70 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:46:36.54 ID:AsfEP5CT0
CPUの中にはON/OFFできる回路が一億ぐらいあるんだっけ?
それ以上あったよね?
1GHzで一秒間に1億回処理できるんだから
73 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:00.72 ID:2KuzgTTd0
>>70
Core i7 は 7億素子ぐらい
でも、クロックと素子数は関係ないよ
10素子ぐらいでできた 1+1 しかできない回路でも、1GHz のクロックで動作する素子なら1秒間に10億回 1+1 の計算ができる
79 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:56:39.08 ID:sip+fRGT0
>>73
人類すげー!
そんなミクロの部品を生産して完璧に配置していく生産ラインの機械もお前どうなってんのと
83 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:59:26.38 ID:NietJwaL0
>>79
配列は写真の現像みたいな技術でやってるよ
パターンつくって露光して余分なところ削ったら完成
71 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:47:46.03 ID:TUXpAM4w0
夜中のVIPは博識多いな
74 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:28.85 ID:v2OvKTv0O
すげえなお前ら何もんだ…
なるほどなー、こういうの読むと勉強したくなる
75 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:50:36.96 ID:qkvfDDiRP
今日一番勉強になるスレ
77 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:51:36.72 ID:v8bm93dr0
デジタル回路を構成する基本的なパーツ(素子)はざっくり3つぐらい
入力と出力があって 入力の内容によって出力が変わる
その詳しい原理は割愛 アナログな人頼む
AND素子 2入力1出力
両方の入力から電気が流れてきてるときだけ電気を出力する
それ以外は出力しない
OR素子
2入力1出力 どちらか片方でもら電気が流れていれば電気を出力する
両方来てないなら出力しない
NOT素子
1入力1出力 入力と逆を出力する ON→OFF OFF→ON
ここまでおk?
80 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:57:07.75 ID:v8bm93dr0
以上の3つを表にする
0が電気来てない状態 つまりOFF
1が電気来てる状態 ONだな
X Yがそれぞれ独立した入力 Zが出力だ
AND
X Y Z
0 0 0
0 1 0
1 0 0
1 1 1
OR
X Y Z
0 0 0
0 1 1
1 0 1
1 1 1
NOT
X Z
0 1
1 0
NOTは入力が1つしか無いからYは無しな
まとめただけだがここまでおk?
81 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:58:35.29 ID:ok44i40T0
>>80
ここまではわかる。
91 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:05:34.27 ID:+owZ8Gmq0
AND OR NOT じゃ書きにくいので
横書きでは算術記号を使って以下のように書く
A AND B → A・B
A OR B → A+B
NOT A → ¬A
_
NOT A は A (えーばー)と表すのが簡単で一般的だが ここでは書き込みの関係上¬を使わせてくれ
あと 数学と同じように()を使ったりもする
もちろん()を先に計算する
A=1 B=0 のとき A+B=1 A・B=0 ということだね
同様に (A+B)・B=1 (A・B)+B=0
ここまでおk?
102 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:17:55.58 ID:+owZ8Gmq0
論理回路の基本的な表記方法は以上だ
あとはこの素子を複雑に組み合わせることで計算機ができる
さっきの例の()を使った問題のように素子の出力をさらに次の素子の入力にしていって
組み合わせていくだけだ
たとえば半加算器(下位からの繰り上がりなしの2進数の足し算をするもの)はすごくシンプルな作りだ
さっきみたいに表にすると
半加算器
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
2進数でA+B (この+はANDじゃなくて足し算の意味) を計算するってことは つまり上の表のような入力ABに対してSCのような2つの出力をすればいいわけだ
Cが繰り上がりの桁 Sが計算結果の桁だ
上から順に 0+0 = 00、 0+1 = 01、 1+0 = 01、 1+1 = 10
の計算に対応してるわけだ
ちなみにこの半加算器での出力Sは>>95の言う XOR の出力と同じものだ
106 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:25:39.53 ID:+owZ8Gmq0
下位からの繰り上げを考慮した全加算器というものもある
半加算器を組み合わせた単純な構造だから
つまりはこれもAND OR NOT の3つだけで作れるということだ
引き算は2進数の特徴(2の補数)を利用してやれば 同様の機械で実現できる
掛け算割り算も同様に3つの素子だけで作れるがかなり複雑になるので割愛
気になるなら乗算器でググってくれ
基本的な考え方は
1. 求めたい出力を表にする
2. 必要な入力を考える
3. それらを論理演算で実現できる素子の並びを考える
この工程を繰り返してどんどん高機能な素子の塊を組み上げていくわけだ
ここまでおk?
それとも需要ない?
109 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:30:06.41 ID:/Cad/v4/0
親がエンジニアなのに何言ってるかチンプンカンプンだわ
110 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:31:19.78 ID:+owZ8Gmq0
そうか 俺の解説じゃダメか・・・
113 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:34:19.91 ID:KLfKFpY20
>>110
いや、すごくわかりやすいと思う。それが大元なのが理解できた。
126 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:46:06.65 ID:+owZ8Gmq0
>>113
需要あるなら調子に乗って書いちゃう
で
CPUってのは基本的に
指示された命令を上から順番に実行していくわけだが
具体的にはイカのサイクルを延々と繰り返すだけだ
・必要な情報(数値など)を指示された場所から読み出す
・読みだした値を指示された方法で計算する
・計算結果を指示された場所に保存する
・次の命令を読み込む
CPUは予め決められた命令と動作を自分で覚えてて 例えば
1番の命令が来たら 与えられた数値ABを足しなさい 結果はCに保存
2番の命令が来たら 与えられた数値ABを掛けなさい 結果はCに保存
3番の命令が来たら Aの場所からデータを読み出しなさい 読みだしたものはBに保存
・・・
と 命令番号と動作が決まっているわけだ
ここでCPUに与えてやらないといけない情報は 大きくわけて
・計算方法(足し算引き算 データ読み出し)
・読み出すデータ
・保存場所
になるわけだ
ここまでおk?
>>82
なるほどw
47 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:34:33.36 ID:BGiqRoji0
分かりやすい説明できる人ってすごいな
51 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:36:53.97 ID:2WqUDmUR0
プレゼン能力ある人ってほんと尊敬するわ
54 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:38:02.66 ID:TUXpAM4w0
あんたらはどこで勉強したの?
独学?
58 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:40:57.79 ID:01Ko1dZhi
>>54
某企業でSEやってる叔父さんから
69 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:45:46.81 ID:2KuzgTTd0
メモリもスイッチっすよ
スイッチを8個並べれば 8bit スイッチの出来上がり
たとえばこのメモリに4をセットする場合は、4を2進数になおして
(00000100) あとは上からスイッチを
Off Off Off Off Off On Off Off とやれば
メモリにセット完了
左から電気を流すと、右には LLLLLHLL という信号がでるので
それにしたがって演算器は計算できる
70 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:46:36.54 ID:AsfEP5CT0
CPUの中にはON/OFFできる回路が一億ぐらいあるんだっけ?
それ以上あったよね?
1GHzで一秒間に1億回処理できるんだから
73 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:00.72 ID:2KuzgTTd0
>>70
Core i7 は 7億素子ぐらい
でも、クロックと素子数は関係ないよ
10素子ぐらいでできた 1+1 しかできない回路でも、1GHz のクロックで動作する素子なら1秒間に10億回 1+1 の計算ができる
79 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:56:39.08 ID:sip+fRGT0
>>73
人類すげー!
そんなミクロの部品を生産して完璧に配置していく生産ラインの機械もお前どうなってんのと
83 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:59:26.38 ID:NietJwaL0
>>79
配列は写真の現像みたいな技術でやってるよ
パターンつくって露光して余分なところ削ったら完成
71 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:47:46.03 ID:TUXpAM4w0
夜中のVIPは博識多いな
74 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:28.85 ID:v2OvKTv0O
すげえなお前ら何もんだ…
なるほどなー、こういうの読むと勉強したくなる
75 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:50:36.96 ID:qkvfDDiRP
今日一番勉強になるスレ
77 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:51:36.72 ID:v8bm93dr0
デジタル回路を構成する基本的なパーツ(素子)はざっくり3つぐらい
入力と出力があって 入力の内容によって出力が変わる
その詳しい原理は割愛 アナログな人頼む
AND素子 2入力1出力
両方の入力から電気が流れてきてるときだけ電気を出力する
それ以外は出力しない
OR素子
2入力1出力 どちらか片方でもら電気が流れていれば電気を出力する
両方来てないなら出力しない
NOT素子
1入力1出力 入力と逆を出力する ON→OFF OFF→ON
ここまでおk?
80 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:57:07.75 ID:v8bm93dr0
以上の3つを表にする
0が電気来てない状態 つまりOFF
1が電気来てる状態 ONだな
X Yがそれぞれ独立した入力 Zが出力だ
AND
X Y Z
0 0 0
0 1 0
1 0 0
1 1 1
OR
X Y Z
0 0 0
0 1 1
1 0 1
1 1 1
NOT
X Z
0 1
1 0
NOTは入力が1つしか無いからYは無しな
まとめただけだがここまでおk?
81 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:58:35.29 ID:ok44i40T0
>>80
ここまではわかる。
91 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:05:34.27 ID:+owZ8Gmq0
AND OR NOT じゃ書きにくいので
横書きでは算術記号を使って以下のように書く
A AND B → A・B
A OR B → A+B
NOT A → ¬A
_
NOT A は A (えーばー)と表すのが簡単で一般的だが ここでは書き込みの関係上¬を使わせてくれ
あと 数学と同じように()を使ったりもする
もちろん()を先に計算する
A=1 B=0 のとき A+B=1 A・B=0 ということだね
同様に (A+B)・B=1 (A・B)+B=0
ここまでおk?
102 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:17:55.58 ID:+owZ8Gmq0
論理回路の基本的な表記方法は以上だ
あとはこの素子を複雑に組み合わせることで計算機ができる
さっきの例の()を使った問題のように素子の出力をさらに次の素子の入力にしていって
組み合わせていくだけだ
たとえば半加算器(下位からの繰り上がりなしの2進数の足し算をするもの)はすごくシンプルな作りだ
さっきみたいに表にすると
半加算器
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
2進数でA+B (この+はANDじゃなくて足し算の意味) を計算するってことは つまり上の表のような入力ABに対してSCのような2つの出力をすればいいわけだ
Cが繰り上がりの桁 Sが計算結果の桁だ
上から順に 0+0 = 00、 0+1 = 01、 1+0 = 01、 1+1 = 10
の計算に対応してるわけだ
ちなみにこの半加算器での出力Sは>>95の言う XOR の出力と同じものだ
106 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:25:39.53 ID:+owZ8Gmq0
下位からの繰り上げを考慮した全加算器というものもある
半加算器を組み合わせた単純な構造だから
つまりはこれもAND OR NOT の3つだけで作れるということだ
引き算は2進数の特徴(2の補数)を利用してやれば 同様の機械で実現できる
掛け算割り算も同様に3つの素子だけで作れるがかなり複雑になるので割愛
気になるなら乗算器でググってくれ
基本的な考え方は
1. 求めたい出力を表にする
2. 必要な入力を考える
3. それらを論理演算で実現できる素子の並びを考える
この工程を繰り返してどんどん高機能な素子の塊を組み上げていくわけだ
ここまでおk?
それとも需要ない?
109 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:30:06.41 ID:/Cad/v4/0
親がエンジニアなのに何言ってるかチンプンカンプンだわ
110 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:31:19.78 ID:+owZ8Gmq0
そうか 俺の解説じゃダメか・・・
113 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:34:19.91 ID:KLfKFpY20
>>110
いや、すごくわかりやすいと思う。それが大元なのが理解できた。
126 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:46:06.65 ID:+owZ8Gmq0
>>113
需要あるなら調子に乗って書いちゃう
で
CPUってのは基本的に
指示された命令を上から順番に実行していくわけだが
具体的にはイカのサイクルを延々と繰り返すだけだ
・必要な情報(数値など)を指示された場所から読み出す
・読みだした値を指示された方法で計算する
・計算結果を指示された場所に保存する
・次の命令を読み込む
CPUは予め決められた命令と動作を自分で覚えてて 例えば
1番の命令が来たら 与えられた数値ABを足しなさい 結果はCに保存
2番の命令が来たら 与えられた数値ABを掛けなさい 結果はCに保存
3番の命令が来たら Aの場所からデータを読み出しなさい 読みだしたものはBに保存
・・・
と 命令番号と動作が決まっているわけだ
ここでCPUに与えてやらないといけない情報は 大きくわけて
・計算方法(足し算引き算 データ読み出し)
・読み出すデータ
・保存場所
になるわけだ
ここまでおk?
\ シェアする /
関連記事
- プログラマの俺が色々紹介するスレ
- プログラムってなんで動くの?
- 回顧厨が昔やったゲームの思い出をたれ流すスレ
- 悪質出会い系サイトからの料金請求に困ってるんだけど
- インターネット副業の詐欺に合ったかもしれないんだが
- Linuxの魅力
- ウェブサイトを作りたいのだが、java scriptとかphpとかわけ分からん
- Web業界に興味ある人、質問に答えるよ
- Linux 捗り過ぎワロタwwwwww
- マジのプログラマーにしかわからないこと
- facebook見てたら死にたくなったんだが
- Linux歴15年の俺がオススメソフトを紹介して普及を目指すスレ
- Ubuntuに興味あるおまいらにMacBookにUbuntuをインストールする方法教える
- 【画像】中華のおもしろそうなゲーム機買ってみたww
- 外付けssdとhddならどっちのが長期保存に向いてる?
- WindowsからLinuxにほぼ完全に乗り換えたけどイマドキってLinuxで困る事全く無いな
- Chromebookのデメリットってある?
- お前らってパソコン最高で何年間使用した?
- プログラミングで副業したい俺にオススメ言語を
- 趣味プログラミングに使ってる言語何?
- ゲームプログラミングを15年ほど独学で学んできたんだが語っていい?
-