クリエイター手抜きプロジェクト[483]IoT編 ビット処理(NOT)/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,400文字)



今回はビット処理について説明します。簡単なWebプログラムや、ちょっとしたツール、アプリではビットに関する処理を行うことは、ほとんどないと思います。しかし、ハードウェアに密着した処理や、低レベルの処理(マシン語を使う場合など)ではビット処理は必須です。

よりハードウェアに近い処理が書けるC言語は、もちろんWebで多く使われているJavaScriptにもビット処理を行う機能(演算子)が用意されています。ビット演算は、どの言語でも以下の種類が用意されています。

NOT 論理否定(ビット反転)
AND 論理積
OR  論理和
XOR 排他的論理和

ビット演算なんて使ったこともない、知らないという人がほとんどだと思います。でも、このようなビット演算はPhotoshopやIllustratorにさりげなく組み込まれています。





例えば論理否定であるNOTですが、これはPhotoshopでの「イメージ」>「色調補正」>「階調の反転」が該当します。NOTはビットが反転、つまり0なら1に、1なら0になります。

それではPhotoshopで実験してみましょう。Photoshopでレイヤー(または背景)を真っ赤な色で塗りつぶしてください。その後、「イメージ」>「色調補正」>「階調の反転」を選択します。すると、赤色が水色になります。

どうして水色になったのか分かるでしょうか。水色は赤色の補色ではありません。どうして水色になったのかは、色を示すすべてのビットが反転したからです。まず、8ビットモードでの赤色のRGBは以下のようになります。

11111111 00000000 00000000 (RGB=255,0,0)

このビットを反転させると以下のようになります。

00000000 11111111 11111111 (RGB=0,255,255)

緑と青の輝度が255なので最も明るい水色になります。水色になった状態で再度「イメージ」>「色調補正」>「階調の反転」を選択すると、全ビットが反転するので元の赤色に戻ります。

とは言っても、Photoshopで階調の反転を使うことは少なく、NOTは身近ではないかもしれません。でも、全ビットが反転すると便利なものもあります。

例えば、文字を入力する時に表示される「Iビームカーソル」です。Iが点滅する際、NOTを使えば簡単に点滅させることができます。

Photoshopでも試すことができます。まず、レイヤー(か背景)を黒色で塗りつぶします。その後「イメージ」>「色調補正」>「階調の反転」を選択すると真っ白になります。

MacならコマンドキーとIキー、WindowsならctrlキーとIキーを押しても「階調の反転」になります。適度なタイミングでキーを押せば、カーソルが点滅しているように見えます。(多分)

もし、点滅するカーソルの下に文字があったらどうでしょうか。実験してみましょう。Photoshopでレイヤー(か背景)にブラシで文字を適当に書きます。書いたら「階調の反転」をしてみましょう。先ほどと同様に、キーをタイミングよく押せば描いた文字が反転します。

これと同様の処理は、実際にPhotoshopやIllustratorでの文字の選択時に行われています。文字を選択すると反転した色で文字と背景が表示されます。これはビット演算であるNOTを使っているためです。

どうして、文字を選択すると、あのような色になるのかというと、そうビット反転が行われているからです。身近なところでビット演算は多く使われているのです。

ただ、実際にはNOTでなく排他的論理和であるXORが使われている可能性もあります。XORを使えば特定のビットだけを反転させることができます。XORについては次回説明します。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

今年は大統領の当たり年。火に油をどんどん注いでくれる韓国の朴大統領。せっかくだから、以下のような言い訳をしてみたらどうでしょうか。

「たかが一人不正入学しただけですよ。たった一人。これによって落ちた人も一人。何の問題もないでしょう?」

「デモをする時間があれば、その時間を勉強に充てた方がよいのではないですか?」

「私が大統領を辞めても、あなたが学校や会社の試験に合格するわけじゃないのよ」

「よく考えて。次の大統領は私よりひどい人になるかもしれないのよ。将来ひどい大統領になるなら、私が大統領のままの方がいいでしょう? アメリカの大統領選挙結果をよく見なさい」

「経済が停滞? それは嘘よ。毎週、多くの人がデモをするから周辺の店が儲かるでしょう。私が任期満了するまでデモが続けば経済効果抜群だわ。私は経済的なことも考えているから大統領を辞めないのよ」

「国民の支持率がゼロ? 問題ないわ。私は私自身を100%支持してるから」

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Premiere Pro & Media Encoder自動化サンプル集
http://www.amazon.co.jp/dp/4802090471/

・JavaScriptによるデータビジュアライゼーション入門
http://www.amazon.co.jp/dp/4873117461/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・Adobe JavaScriptリファレンス
http://www.amazon.co.jp/dp/B00FZEK6J6/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/