标签:amp 随机数 两数相加 func 游戏 经典 编写 进制 user
// 只出现一次的数字 func singleNumber(nums []int) int { num := 0 for _, v := range nums { num ^= v } return num } // 二进制中1的个数 func hammingWeight(num uint32) int { sum := 0 for ; num > 0; num >>= 1 { if num & 1 == 1 { sum++ } } return sum } // 两数相加(不使用加减乘除) func twoSum(a, b int) int { for b != 0 { a, b = a^b, a&b<<1 } return a } // 交换两个整数a,b值 func Exchange(a, b int32) (int32, int32) { a = a ^ b b = b ^ a a = a ^ b return a, b } // 编写随机数函数 func randnum(n int) int { rand.Seed(time.Now().UnixNano()) num := 0 for i := 0; i < int(math.Ceil(math.Log2(float64(n)))); i++ { a := rand.Intn(2) // 随机0或1 if a == 1 { num |= a << i } } if num < n { return num } return n } 游戏项目常用到的 userId |= sererNo << 18 // update 设置 vip |= 0x1 << flag // get 获取 func (p *Player) GetCommonFlag(flag uint32) int32 { return vip >> flag & 0x1 }
标签:amp 随机数 两数相加 func 游戏 经典 编写 进制 user
原文地址:https://www.cnblogs.com/huangliang-hb/p/13441578.html