如何 获取int 首位数字 123输出1 23输出2 4 输4 48输出4
时间: 2024-10-13 12:13:00 浏览: 10
在C++中,获取一个整数(如`int`类型)的首位数字,你可以使用位操作符。首先,我们可以对数值进行按位与运算(`&`),与一个移位后的数字(例如`0x0f`对应十进制的15,用于获取最低四位)进行操作。这是因为每一位数字乘以`10`的幂等于该位数字加上前一位的值,所以我们可以通过不断右移(相当于除以`10`)直到达到低位,然后查看结果的最高位。
下面是一个简单的函数实现这个功能:
```cpp
#include <bitset>
using namespace std;
int getLeadingDigit(int num) {
// 将数字转换成二进制并设置最低四位为1
bitset<4> binaryNum(num & 0x0f);
// 从最高位开始遍历,直到找到第一个1或者全部是0
for (int i = 3; i >= 0; i--) {
if (binaryNum.test(i)) {
// 返回高位数字
return i + 4 * binaryNum.to_ulong(); // 将二进制表示转换回十进制
}
}
// 如果所有位都是0,意味着首位是0
return 0;
}
int main() {
cout << "The leading digit of 123 is: " << getLeadingDigit(123) << endl;
cout << "The leading digit of 23 is: " << getLeadingDigit(23) << endl;
cout << "The leading digit of 4 is: " << getLeadingDigit(4) << endl;
cout << "The leading digit of 48 is: " << getLeadingDigit(48) << endl;
return 0;
}
```
阅读全文