我怎样将二进制编码的十进制数转换为其对应的十进制数字,而不是它的值?我想要的是转换显示方式,而非它的值。例如,我想把
0x11
转换为十进制数11
(而不是17
),把0x20
转换为20
(而不是32
)。unsigned char day = 0x11;
unsigned char month = 0x12;
int dayDecimal, monthDecimal;
我希望 dayDecimal 的值为 11
,monthDecimal 的值为 12
。我将使用 0x00 到 0x60 的范围,所以应该是可行的。不会出现 'A'、'B'、'C'、'D'、'E'、'F'。
更新:
实际上,我正在读取 RTCC 芯片中的时间,作为我正在开发的嵌入式项目的一部分。小时、分钟、日和月以那种形式返回。例如,如果分钟为 0x40,则表示 40 分钟而不是 64,因此需要正确保持其解释。我需要以某种方式将 0x40 转换为 40 而不是 64。我希望这是可能的。
谢谢!
0x11
是一个数字字面量。它只是一个数字;它既不是十六进制也不是十进制。十六进制只是一种显示数字的方式。 - SLaks