星宸科技面试题更新 2026-08-05

给定一个 unsigned int,如何找出第一个为 1 的位(从最低位开始)?先给出遍历方法,再进一步优化。

星宸科技电子/硬件开发人工智能编码实现问题拆解技术原理CC++

考察说明

考察位运算基础、算法复杂度优化与边界处理

回答思路

  1. 能正确用遍历方法定位第一个为 1 的位
  2. 能指出遍历逐位检查的时间复杂度为 O(位数)
  3. 能提出使用补码(n & -n)一次定位最低位 1 的优化方案
  4. 能处理 unsigned int 为 0 的边界情况并解释返回值
  5. 能说明未定义行为风险(如对 0 取负)及替代方案
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。