No.5ベストアンサー
- 回答日時:
★過去質問より。
・次の過去質問をちょっと見て下さい。
http://oshiete1.goo.ne.jp/qa3132505.html→『C言語での数字の花形表示』
この質問を読み回答No.1と回答No.6を見比べて下さい。
私の回答ではビット演算(AND)を利用して花文字の表示をしています。
データの作り方にもよりますがビット演算などを上手く利用すると
すっきりと処理できるようになります。
・他にも経路ゲームで『壁=0』『道=1』の2つで構成されるマップがあるとします。
このマップが256×256の大きさだと
char型で表現すると65,536バイト
int型で表現すると262,144バイト
のデータ量になります。※int型は32ビットとする。
迷路のマップが100ステージあると物凄いデータ量になります。
このような場合はchar型(int型)よりもビットで『壁』『道』を表現すれば
1マップは256×256の大きさでも32×32=1024バイトですみます。
データの圧縮にもなります。
・このデータを読み取るときにはビット演算を駆使すれば迷路パターンを読み取れます。
このように工夫次第でいろいろと活用できるのです。
ポインタも使い次第では便利ですので。同じことです。
No.4
- 回答日時:
>ビット単位の演算とは、どのような場面で使用されているものなので
>しょうか?
他の回答の通りです。
>また、ビット単位の演算が行えることにどのようなメリットがあるの
>でしょうか?
直接のメリットは「関数に、真か偽のみの値を複数個渡す場合に、高速に値渡しが出来る」くらいです。
他の回答の
>int fd = open(filename, O_WRONLY | O_APPEND | O_CREAT);
も「読み書き可が真」と「アペンド可が真」と「新規作成が真」の3つの値を渡すのに「一つの引数」で済ませています。
No.3
- 回答日時:
こんばんは。
メリットと使われ方の場面を、ほぼ言葉のみにて書かせて頂きます。
質問者様におかれまして、ご参考になれば幸いかと存じ上げます。
メリットを(使われます場面との関連性が大です)
1. 高速で計算可能な CPU において、演算の速度が、高速です。
2. メモリの消費量を、最小限に抑えうる事が出来ます。
3. 1つの変数で、複数の情報を持つ事が出来ます。
等です。
使われています場面を。
ハードウェア(デバイス系、制御系等)を、直接操作するプログラムにおいて、
プログラムミングの際に、ビット単位で情報を、表現する場合に使われます。
最高速で、無駄の無い演算処理を、行う部分がほとんどです。
演算処理や暗号化等、非常に高い処理能力が、必要になる場合に使われます。
但し、学んで行く過程、趣味等は除きますが。
追記です。現在、補足が書けない状態ですので、ご存知でしたら失礼m(__)m
ビット演算を行う変数は、符合なし( unsigned )変数を使うのが普通ですが、
ビット単位でデータ操作をする為、対象は整数( int )に限られます。
個人で、PC 向けのプログラムでは、ほとんど用いられる事は、なくなりましたが、
使われないとも限りません(メンテナンス時に、わかりにくくなる為)
#現在補足を頂いても、私情にてほぼ不可能ですので、
#誠に申し訳御座いませんが、その点は何卒ご了承のほどをお願い致します。
No.1
- 回答日時:
画面の画素の色を表すのに RGBが使われます
このRGB各要素が 8ビットのデータを扱うのにint型などが使われます
このとき 上位16ビット中の下位8ビットにRed
下位16ビット中の上位8ビットが Green
下位16ビット中の下位8ビットが Blue
と言った場合に各RGBのデータを抽出する際などにビット演算を使います
int r = ( rgb & 0xFF0000 ) >> 16;
int g = ( rgb & 0x00FF00 ) >> 8;
int b = ( rgb & 0x0000FF );
// r g b に対して何らかの演算をする
rgb = ( r << 16 );
rgb |= ( g << 8 );
rgb |= b;
と言った具合で復元する
この回答へのお礼
お礼日時:2008/04/11 19:13
画像処理の分野でビット演算を使用するという話を知人から以前
聞いたことがありました。
ご回答頂いた内容は非常に参考になりました。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAのIf,Then 構...
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
符号無し整数xを右にnビット回転
-
算術シフト演算が成り立つ理由...
-
[VBS] 素早くローテート演算したい
-
IEEE規格浮動小数点について
-
命令について
-
フォートランの変数型と組み込...
-
一般のソフトで画像を扱う場合...
-
ビットシフトってどんな時使うの?
-
素朴な疑問 (C言語とアセン...
-
delph5 ボタンの色を変更するに...
-
このアセンブラの意味を教えて...
-
言語の実行スピードで早い順に...
-
ライン数とステップ数の違いは?
-
汎用レジスタのワーキングビッ...
-
レジスタの数
-
レジストってなんですか?
-
MIPSアセンブラ言語について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
エクセルVBAのIf,Then 構...
-
A4 持ち込み
-
ビットシフトってどんな時使うの?
-
一般のソフトで画像を扱う場合...
-
文字参照は10進数と16進数では...
-
符号無し整数xを右にnビット回転
-
C言語で128bitの2進数のビット...
-
シーケンス制御についての質問...
-
PLC 命令について
-
命令について
-
Python: 数値を反転させたい
-
情報科学の飽和演算、ラップア...
-
1の補数
-
03分22秒36のような時間の単位...
-
ビット立つの意味
-
verilog 符号付加減算(最上位...
-
上位ビットと下位ビットの入れかえ
-
シーケンス制御について質問で...
おすすめ情報