【发布时间】:2013-11-14 10:52:08
【问题描述】:
我在某些任务上遇到了小问题。
我们对此主题进行了调查。单次调查的结果(从一名受访者那里获得)提供了以下信息,这些信息将被编码为 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)。
【问题讨论】:
-
到底是什么问题?你需要那个 unsigned short 的解码函数吗?
-
@Raxvan 会很棒,因为我有更多这样的任务,但没有任何示例可以使用。因为工作的关系,我不得不把这个话题留在大学里,现在我没有任何材料。这是第一项任务,我需要帮助才能理解它。
-
假设您没有被特别要求使用移位运算符,如果您使用带位域的联合,您可以让自己更简单(查看它,您应该会找到很多示例)
-
您的班次值已关闭。你是怎么计算出来的?
-
你在错误的网站上发布了这个 - 你想要“www.we-write-your-homework-for-you.com”
标签: c++ c data-structures decode short