如何使用一个变量保存多个值?

2019-08-27  本文已影响0人  好学人

思路:使用二进制的与运算(&),即可实现一个变量保存多个值。

假设有以下使用场景:

请选择你愿意去生活的城市:北京、上海、杭州、郑州。
可多选,要求使用一个int变量保存用户的选择。

以下为代码实现:

  1. 先定义4int变量,为别表示北京、上海、杭州、郑州。代码如下:
int 北京 = 2 << 0; // 2 二进制:10
int 上海 = 2 << 1; // 4 二进制:100
int 杭州 = 2 << 2; // 8 二进制:1000
int 郑州 = 2 << 3; // 16 二进制:10000
  1. 将用户选择的城市对应的变量值相加,即可得到用户的选择结果。比如用户选择了北京、杭州、郑州。则用户的选择结果可表示为:
int result = 北京 + 杭州 + 郑州;  // 2 + 8 + 16 = 26 二进制:11010
  1. 要判断用户的选择结果中是否包含指定城市,只需要使用选择结果和该城市作与运算即可。如果选择结果中包含该城市,则与运算后的结果就是该城市对应的变量值。比如判断用户的选择结果中是否包含北京,代码实现如下:
int city = result & 北京; // 11010 & 10 = 10
boolean contains = (city == 北京); // true
上一篇 下一篇

猜你喜欢

热点阅读