今天打开了codewars,然后看到了BitCounting,抱着好奇心,然后做了。

Write a function that takes an integer as input, and returns the number of bits that are equal to one in the binary representation of that number. You can guarantee that input is non-negative.

Example: The binary representation of 1234 is 10011010010, so the function should return 5 in this case

粗粗一看,还挺简单的。然后就开始码代码。 思路很简单,查看Integer类型的值从十进制转成二进制,然后转成String,去除为1的字符,减少的量就是1的数量。 按着这个思路,嗖嗖嗖写完了,提交,没问题。 然后看了别人的答案,瞬间觉得自己蠢了。 看着别人精简的答案,做了整理。

直接使用Integer.bitCount(n)

第一眼看到这行代码,直接懵逼了,我用是十行代码才解决的问题,别人直接用一行就解决了。也想了解一下它的实现方式,用IDEA打开了Integer的类,开始查看起来。