温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:01
来,别说话,看屏幕。今天我们讲一下这个第15题,二进数中一的个数。这道题用两种解法,一个是未运算,还有一个是我们的库函数,那这个未运算可能需要理解一下,嗯。这比较抽象啊,我们直接开始做这道题。首先它有一个。一直的郑书恩。那我们这时候需要有一个奇数的COUNT0,那这个时候呢?用位运算的方式。我们需要去。减一。并且做一个与。当然如果说这个一给的数啊,它只要是。不等于零的情况下,它肯定就是有一的。那这个count呢,每次进行一个加压操作。
01:04
这个N每次要更新一下。先给他写出来。N与N减一为什么要这么写呢?大家可以想一下。凡是一个数变成二进制之后,它。只要是不等于零的位数中,一定会有一个一。那这个时候我们如果减一的话,就会使当前二进制带一的那一位后面所有的数位去反。那当前带一的那位也会去反,但是他左半部分并不会有任何改变。因此。每一次做完这个取反的操作。在跟原数位相与的话,它就会。全部。变成零。那我们每一次。做一个这个操作,他都会把当前带一的一位变成零。
02:05
那我们有多少个循环,当然就有多少个带一的二进制位。所以说这样的话就可以来算出来。我们这个count。啊,这是其中一种办法,还有一种办法呢,就是。我们直接用这个宽恕。包装类下面有一个。叫bit count,它这个的函数。大家可以查一下,它本质上做的操作也是同样的。
我来说两句