比较数字的第三位

时间:2015-09-19 09:23:53

标签: java editing

下面的程序检查一个数字的第三位是否为1.我在第三位(4)上取一个数字1,我​​将它与用户输入的数字进行比较。

到目前为止该计划有效,但我正在寻找不同的方法。我想知道是否有其他方法可以获得相同的结果。

var angryc:NSURL = NSBundle.mainBundle().URLForResource("MSoundEffect", withExtension: "mp3")!
try! angry = AVAudioPlayer(contentsOfURL: angryc, error: nil)

3 个答案:

答案 0 :(得分:1)

你可以将数字两位向右移动,除以4,然后测试最后一位(移位前的第3位) - 如果数字为奇数,则为1,否则 - 它是0

num = num / 4;
if (num % 2 == 1) //it was 1
else //it was 0

但你的方法也很好。

答案 1 :(得分:0)

  if((number >> 2) & 1)==1) {
       // same code as before.
   }

会发生什么事情,你的号码会向左移动两次,所以说你的号码是12 - > 1100.所以在它移动后它变成0011.现在你可以将最后一位与1进行比较。

答案 2 :(得分:0)

由于您可以插入许多冗余操作,因此无数种方法。但是,如果将其限制为一个算术/逻辑运算加上一个相等测试/比较,则以下是一些可能性(对于第三位== 1,对于第三位= = 0,测试为真) -

(number & 4) != 0  
(number | 4) == number  
(number % 8) >= 4