忍者ブログ
大chanの日記的な何か。
[337] [336] [335] [334] [333] [332] [331] [330] [329] [328] [327]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

9/6(木)の日記。

---

A 1111 0000
B 1100 1100
C 1010 1010
-----------
X 1111 1110

ずれてないかな?スタイルシートでフォント設定した方がいいかな。。。

入力A,B,Cに対する出力Xの真理値表である。

プログラマという職業をしているわけだが、
仕事上、こんな計算をする機会がある。
こういう真理値表を与えられた上で、
入力A,B,Cに対する出力ビットを出力する。

この場合は、例えば、
A=1,B=0,C=1
が入力されたら、1を出力することになる。

プログラミングとしては、C言語風に書くと、

出力 = ( X >> ( ( A * 4 ) + ( B * 2 ) + C ) ) & 0x1;

で与えられるワケだが、
この真理値表の場合は簡単で、
AかBかCのどれか一つでも1であれば出力は1なんだから、

出力 = A | B | C;

で良いのである。
この方が速い。

また、

A 1111 0000
B 1100 1100
C 1010 1010
-----------
X 1000 0000

なら、
AとBとCが共に1でないと出力は1にならないので、

出力 = A & B & C;

である。

A 1111 0000
B 1100 1100
C 1010 1010
-----------
X 1111 1000

この程度でも簡単。

出力 = A | ( B & C );

である。

これが、

A 1111 1111 0000 0000
B 1111 0000 1111 0000
C 1100 1100 1100 1100
D 1010 1010 1010 1010
---------------------
X 0000 0100 0000 1000

とかになってくると、ぱっと見じゃワカラン。。。

どーやって解くんだろう。。。
とWebを漁ってたら見つけたのが、
主加法標準形。

要するに、出力が1になるところを論理積で求め、
それらを最後に論理和で結べば答えが出てくるのである。

この場合は、、、

1 = A & ~B & C & ~D
1 = ~A & ~B & C & D

なので、、、

出力 = ( A & ~B & C & ~D ) | ( ~A & ~B & C & D );

となるわけだ!

おもしれー!
もちろんこれは、ド・モルガンの定理とかXORを使ってもっと簡単にするわけですが。。。

最終的には以下のようになるかな?

出力 = ( A ^ D ) & ~B & C;

そういえばなんか大学でやった気もしてきたな。。。(^^;
他にも、説明は割愛するが、主乗法標準形とかも。
カルノー図とかも便利そう!!!

あー。数理論理学とか勉強したくなってきたわ。
行列計算もやり直したいなぁ。
回路理論もやりたい。

思い立ったが吉日、だとか、
60の手習い、だとかあるけれど、
こういう勉強がやりたくなるのって、
学生のうちにはあまり無いよねぇ。(^^;

ガキの頃には誰もが言う、
「○○なんて大人になったら必要ねーよ!!!できなくてもいいじゃん。」
って言葉。

○○には大抵、三角関数だの、微分積分だのが当てはまる。

が、それは違うね。

大人になったら、ふとしたきっかけで、
学び直したくなるものだ!!!
数学に限らず、ね。

例えば、ドラム録音なんか始めると、
二つのマイクが拾うタムの音の位相関係とかの、
根本的な理屈とかが知りたくなるもんだ。

大人になったら必要になったりするんである。
あの時嫌々やっていた勉強が。w
自分の人生を潤す為にね。

この感覚、ガキんちょに、分かれ!っつったって、
なかなか無理なもんである。

最後に、計算式沢山載せたけど、間違ってたらごめんなさい。w
PR

コメント
無題
同じくプログラマーだけど、
さすがにビット演算なんかそんなにやらないなぁ。
せいぜい、AND演算位ですよ。
やっぱジャンルが違うとやることは結構ちがうんだねー。
【2007/09/14 00:05】 NAME[なりたけ] WEBLINK[URL] EDIT[]
Re:無題
俺は割と、ハードに近いところをやったりするからねぇ。
# かと言ってアセンブラはあまり得意でないけど。(^^;

オブジェクト指向はわかるけど、
C++は得意じゃないです。(^^;

今一番興味がある言語はMMLです。w
【2007/09/19 01:54】


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
04 2017/05 06
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
管理ツール
Live Schedule

2008.08.17(Sun)
けぶりかす
横浜B.B.Street
"ヒカリサス"
w/ Bird Meets Beach, the MDK's, 進藤(仮), SPIRAL
open/18:00 start/18:30
前売\1500+1Drink(¥500)
当日\1800+1Drink(¥500)

2008.08.19(Tue)
けぶりかす
三軒茶屋HEAVEN'S DOOR
詳細未定

2008.09.18(Thu)
けぶりかす
西荻窪TURNING
詳細未定

>>> Past Live <<<

最新コメント
[01/03 てっぺい]
[01/03 てっぺい]
[01/01 マシーコ]
[01/01 大谷]
[01/01 大谷]
[01/01 241chan]
[12/30 メガ]
プロフィール
HN:
大chan
年齢:
36
HP:
性別:
男性
誕生日:
1981/01/30
職業:
プログラマー
趣味:
音楽、ラーメン二郎
自己紹介:
参加したバンド(サポート含む)
・NIHILISM
・Mis Understanding Man
・Wednesday Babee Sit
・シャーン系
・肉
・ヘルパンダ
・オオタニT (オータニT)
・タジマ&大chan
・けぶりかす
・狂武士
バーコード
ブログ内検索
大chanへメールを送る

チケット予約やライブ告知、
二郎や飲み、カラオケの誘い等に、
以下のメールフォームを御利用下さい。

メールフォーム