ラボを開始するのに問題があります。ラボには次の指示があります。
与えられた値
int input = 0b10010110
によって、個人が好きなスポーツを決定します。この入力にエラーはないと仮定します。左から順に、各ポジションは次のとおりです: フットボール、野球、バレーボール、水泳、ソフトボール、サッカー、ホッケー、ラクロス。その位置に 1 がある場合、その人はそのスポーツが好きです。与えられた「バイナリ」入力に基づいて、ユーザーが楽しんでいるすべてのスポーツを画面に出力します。指定された 2 進数について、ユーザーはサッカー、水泳、サッカー、ホッケーが好きです。
文字の配列を作成しないでください。
列挙型のデータ型を使用してください。
文字列の各位置を比較して、それが 1 か 0 かを判断する方法がわかりません. 1
enum sport{
Football = 0010000000,
Baseball = 0001000000,
Volleyball = 0000100000,
... ,
Lacrosse = 0000000001
};
次に、指定された値の「入力」を左右にシフトして、指定された位置のみを元の値で残し、他のすべての値を 0 に設定する適切な回数を入力します。サッカーの場合:
input << 2; input >> 9; input << 7;
したがって、新しい設定値は になります0010000000
。そうすれば、全体の数を比較することができます。ケースごとにそれを行う必要がありますが、別の方法は考えられません。
私は完全にオフですか?ビット操作を使用して各位置の値をチェックするより機能的な方法はありますか? 事前にご支援いただきありがとうございます。