面试题 05.06. 整数转换 Posted on 2021-07-26 Edited on 2022-11-27 In leetcode Disqus: Symbols count in article: 272 Reading time ≈ 1 mins. 面试题 05.06. 整数转换 位运算,仅遍历1 12345678910111213class Solution {public: int convertInteger(int A, int B) { unsigned int C = A ^ B; // 由于有符号数的int只有31位表示数值,一位表示符号,所以转换成无符号数防止在负数的31个1减1后溢出(但是在vs中调试时,溢出后会变成有符号数的正数最大值,计算依旧成立) int ret = 0; while(C) { C &= C - 1; ++ret; } return ret; }};