
位运算
一只热爱游戏的猫
崩坏3 - 游戏客户端研发工程师
展开
-
LeetCode. 位1的个数(位运算)
#include <stdint.h>using namespace std;class Solution {public: //方法1:O(32) int hammingWeight1(uint32_t n) { int result = 0; for (int8_t i = 0; i < 32; i++) { if (n & (1 <...原创 2019-03-05 11:18:54 · 797 阅读 · 0 评论 -
剑指offer——不用加减乘除做加法(按位与和异或)
class Solution {public: int Add(int num1, int num2) { while(num2 != 0){//若需要进位 int sum = num1 ^ num2;//异或,01=1,00=0,11=0【求得相加数,需要进位的直接取0,相当于11=0】 int carry = ...原创 2018-09-07 11:58:07 · 303 阅读 · 0 评论 -
LeetCode. 两整数之和(位运算,计算加/减)
正数相加的位运算操作好理解负数相对难理解C++中,负数以补码形式存放,所以bitset<32>(a) 获取到的 负数a 的二进制数是补码例如:3 + (-1)可以看做:【暂时用8位处理】 0000 0011+ 1111 1111 (原码为:1000 0001,除了符号位,取反+1)————————将这两个二进制直接相加,得到 0000 0010所以很巧妙,二...原创 2019-03-07 22:28:06 · 496 阅读 · 0 评论