![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- 電車・路線・地下鉄 ITパスポート試験問題 7 2023/01/25 09:51
- 情報処理技術者・Microsoft認定資格 2進数の問題を教えてください。 1 2022/07/27 09:42
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- スピーカー・コンポ・ステレオ DAC[について・・・ 1 2022/08/29 11:44
- 物理学 量子コンピュータは量子ビットというものを使って計算するらしいですが、量子を箱の中に入れた状態で計算し 1 2023/02/12 19:29
- 工学 疑似乱数生成器 3 2023/01/05 02:06
- 数学 代数学 単位元 逆元 2 2022/10/11 15:43
- Oracle ビットで表せる数値について 3 2022/09/12 16:37
- 計算機科学 ビット計算 2 2023/04/16 14:26
- ネットワーク 以下の問題を教えてください ホストを50台収容するLAN上のネットワークを構成したい。ネットワークア 2 2022/06/18 20:07
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
8ビットのデータの、先頭ビット...
-
0xffffとは?
-
C言語で128bitの2進数のビット...
-
一般のソフトで画像を扱う場合...
-
算術シフト演算が成り立つ理由...
-
エクセルVBAのIf,Then 構...
-
Javaの問題について
-
数値計算における誤差について
-
MIPSアセンブラの問題です。
-
アクセス(2003)のVBAでビット...
-
PLC 命令について
-
補数(~)について
-
VBScriptでの整数型価格データ...
-
CASLのビットマップについて
-
x86のJP命令について。
-
e(自然対数の底)を100桁以上出...
-
8086で加算減算とキャリーフラグ
-
C言語のビット演算子について
-
四則演算と比較演算を行う式を...
-
c言語、演算子&について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
エクセルVBAのIf,Then 構...
-
8ビットのデータの、先頭ビット...
-
情報科学の飽和演算、ラップア...
-
ビットシフトってどんな時使うの?
-
一般のソフトで画像を扱う場合...
-
文字参照は10進数と16進数では...
-
スロースキャンコンピュータ 加...
-
C言語で128bitの2進数のビット...
-
命令について
-
シーケンス制御についての質問...
-
03分22秒36のような時間の単位...
-
verilog 符号付加減算(最上位...
-
[VBS] 素早くローテート演算したい
-
CASLIIでかけ算
-
符号無し整数xを右にnビット回転
-
算術シフト演算が成り立つ理由...
-
PLC 命令について
-
二元対称無記憶通信路を実現す...
-
2の補数
おすすめ情報