用意された引数(0xBA,0x00,0x04)を引数とし
2進数表記で上位2ビット目が立っているかどうかを判別する関数を作成したいのですが
どのような考え方で作成すればよいのでしょうか?
よろしくお願いいたします
追記 ANDをとるというのはどういうことなのでしょうか?
よろしければ具体的な例をだしていただけたら幸いです...(初学者)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/05 04:53
回答5件
0
ベストアンサー
上位2ビット目が1の値と論理積(AND)を取って0か否かを判定するのが定石です。
別回答のコメントで引数はchar型とのこと。
char型は通常8ビットなので、上位2ビット目が1である値は、
01000000
という2進数で表すことができます。
つまり16進数で、0x40です。
この値を引数と論理積を行い、0以外なら2ビット目がONという判定になります。
引数 & 0x40 != 0 → 2ビット目ON
引数 & 0x40 == 0 → 2ビット目OFF
投稿2018/11/05 05:13
総合スコア16998
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/05 05:20
2018/11/05 05:27
2018/11/05 05:29
2018/11/05 05:36
0
以下のコードを試してみてください.
C
1int 2check_bit(char value) { 3 return (value & 0xC0) == 0xC0; 4} 5
投稿2018/11/05 05:07
総合スコア85
0
引数の型は何でしょうか.
投稿2018/11/05 04:42
総合スコア85
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。