私はいくつかのタスクに小さな問題があります。
についてアンケート調査を行っています。1 回の調査結果 (1 人の回答者から取得) は、unsigned short 型の変数にエンコードされる次の情報を提供します (2 バイトから 16 ビットであると想定できます)。
- 性別 - 1 ビット - 2 つの可能性
- 婚姻状況 - 2 ビット - 4 つの可能性
- 年齢 - 2 ビット - 4 つの可能性
- 教育 - 2 ビット - 4 つの可能性
- 都市 - 2 ビット - 4 つの可能性
- 領域 - 4 ビット - 16 の可能性
答え - 3 ビット - 8 つの可能性
unsigned short coding(int sex, int marital_status, int age, int edu, int city, int region, int reply){ unsigned short result = 0; result = result + sex; result = result + ( marital_status << 1 ); result = result + ( age << 3); result = result + ( edu << 5 ); result = result + ( city << 6 ); result = result + ( region << 11 ); result = result + ( reply << 13 ); return result; }
ここでは結果をエンコードします (正しいことを願っています) が、unsigned short x 内でエンコードした情報を表示する関数を準備する方法がわかりません。
まず、それをエンコードする必要があります:
unsigned short x = coding(0, 3, 2, 3, 0, 12, 6);
次に、 unsigned short xからの情報を次の形式にデコードする別の関数を準備する必要があります。
info(x);
RESULT
sex: 0
martial status: 3
age: 2
education: 3
city: 0
region: 12
reply: 6
どうやって始めればいいのか、何を探すべきなのかわからないので、あなたの助けに感謝します。
私の質問は、誰かが unsigned short コーディング機能をチェックして、void info(unsigned short x) の書き込みを手伝ってくれるかどうかです。