Redis优秀代码分享[1]-digits10

    xiaoxiao2023-10-01  142

    Redis优秀代码分享[1]-digits10

     

    转自https://zhuanlan.zhihu.com/p/27872593

    uint32_t digits10(uint64_t v) { if (v < 10) return 1; if (v < 100) return 2; if (v < 1000) return 3; if (v < 1000000000000UL) { if (v < 100000000UL) { if (v < 1000000) { if (v < 10000) return 4; return 5 + (v >= 100000); } return 7 + (v >= 10000000UL); } if (v < 10000000000UL) { return 9 + (v >= 1000000000UL); } return 11 + (v >= 100000000000UL); } return 12 + digits10(v / 1000000000000UL); }

    这段代码的作用是求一个数字的长度,比较容易理解,但是总会觉得 “竟然还有这样的操作” 。

    最新回复(0)