![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ビットフラグの方法ではなく
数値フラグの計算というか判定の方法の話なのですが、
C++でファイルから設定を読み込む時、
1つの整数にフラグをまとめ様としているのですが、
パターン1
:1の位 10の位 100の位 1000の位・・・ とわけて位毎に3~5種程のフラグを持たせている場合の、10・100の位の取り出し方
パターン2
:On/Offだけで、1・2・4・8・16・32・・・・・とわけている場合の、2・4・8・16の部分の取り出し/判定方法
ビットでの操作はシンプルだったので理解できたのですが、
数値としての場合、どう計算すれば任意の場所を取り出せるのでしょうか?
初歩的な事かもしれませんが、検索しても計算方法を見つけきれませんでした;
どなたか教えて頂けると幸いです。 っ_ _)っ
No.2ベストアンサー
- 回答日時:
パターン2について
&演算子で判定できますよ.
if(入力値 & フラグ値)~です.
Cですけどこんな感じでテストしてみました.
4を引数にするとFlag4だけ,6だとFlag2とFlag4が出力されます.
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[]){
int flag = 1;
int inputNum = atoi(argv[1]);
while(flag<64){
if(inputNum & flag)printf("Flag %d\n",flag);
flag*=2;
}
}
下のコードの方はまだよく理解できませんでした。すみません;
しかし、&単体で直接数値のビット判定(?)が出来るのですね。
初めて知りました。
かなりためになりました。ありがとうございますっ
No.3
- 回答日時:
100の位を取り出すなら1000で割った余りを100で割れば取れますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS CSS上での計算を行うためのルールについて教えてください。 3 2022/08/15 14:43
- Excel(エクセル) エクセルの関数に関しての質問です。 5 2022/10/07 11:17
- 統計学 t検定について教えてください 2 2023/02/23 16:35
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- 大学・短大 大学 留年について 6 2023/06/21 20:17
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- 化学 [例題①]プロパンのOHとの反応速度定数を k=1.0×10⁻¹²cm³s⁻¹、 [OH]=1.0× 0 2023/05/28 13:12
- 計算機科学 2進数の計算について 2進数の値は全て8ビットで負数は2の補数形式とする。結果が8ビットで表現出来な 3 2023/07/22 14:08
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- PowerPoint(パワーポイント) エクセルファイルが他のデーターソースへのリンクが含まれている場合の調べ方を教えてください。 2 2023/08/24 13:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
迷路を脱出する経路探索プログ...
-
C言語のプログラムについて(...
-
条件が多い場合
-
c言語プログラミングについて f...
-
OPEN
-
C++で表を作成したいのです ...
-
再起呼び出しの回数をカウント...
-
C言語で簡単なパックマンゲーム...
-
【C#】SQL文の中に変数を埋め込...
-
2の補数を計算するプログラム
-
Nは2以上とする。1からNまでの...
-
DXライブラリによるパズルゲー...
-
関数と引数の関係とは?
-
数値フラグの判定方法
-
関数とビット列
-
2÷3などの余りについて
-
「Aに対するBの割合」と「Aに対...
-
信頼区間の1.96や1.65ってどこ...
-
EXCELの分散分析表のP-値が....
-
fflush(stdin)の使い方とprintf...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報