如何从数字中提取特定的数字

How to extract particular digits from numbers?

本文关键字:数字 提取      更新时间:2023-10-16

我有BYTE bMins = 36;,我想要bMin1 = 3;bMin2 = 6;

没有长开关等可能吗。?

我已经用case试过了,但速度很慢。

整数除法和模帮助:

BYTE bMins = 36;
BYTE bMin1 = bMins / 10;
BYTE bMin2 = bMins % 10;

这里有一个演示程序

#include <iostream>
#include <cstdlib>
int main() 
{
    typedef unsigned char BYTE;
    BYTE bMins = 36;
    BYTE bMin1, bMin2;
    auto d = std::div( bMins, 10 );
    bMin1 = d.quot;
    bMin2 = d.rem;
    std::cout << "bMin1 = " << ( int )bMin1 << ", bMin2 = " << ( int )bMin2 << std::endl; 
}

程序输出为

bMin1 = 3, bMin2 = 6

另一种方法是转换为字符串并使用数字字符:

BYTE bMins = 36;
std::string s = std::to_string(bMins);
BYTE bMin1 = s[0] - '0';
BYTE bMin2 = s[1] - '0';