我在开始使用我的实验室时遇到了一些麻烦。实验室有以下说明:
给定一个值
int input = 0b10010110
确定个人喜欢什么运动。假设此输入中没有错误。从左到右,每个位置代表以下:足球、棒球、排球、游泳、垒球、足球、曲棍球、曲棍球。如果在那个位置上有一个 1,那么这个人喜欢这项运动。根据给定的“二进制”输入,将用户喜欢的所有运动输出到屏幕上。对于给定的二进制数,用户喜欢足球、游泳、足球和曲棍球。
不要创建一个字符数组。
请务必使用枚举数据类型。
我不确定如何比较字符串的每个位置以判断它是 1 还是 0。我的一个想法是使用枚举类型,在其中我将每项运动设置为十位数字,其中只有它的适当位置是1
enum sport{
Football = 0010000000,
Baseball = 0001000000,
Volleyball = 0000100000,
... ,
Lacrosse = 0000000001
};
然后,我将在给定值“输入”上向左/向右移动适当的次数,以仅保留指定位置的原始值并将所有其他值设置为 0。对于足球:
input << 2; input >> 9; input << 7;
所以新的设定值为0010000000
。然后我就可以将这个数字作为一个整体进行比较。对于每种情况,我都必须这样做,但我想不出另一种方法来做到这一点。
我完全没有了?有没有更实用的方法来使用位操作检查每个位置的值?感谢您提前提供任何帮助。