gpt4 book ai didi

C - 将十进制数转换为压缩 BCD

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:38 24 4
gpt4 key购买 nike

如何在不使用 sprintf 的情况下在 C 中实现这些转换?

20 => 0x20
12 => 0x12

目前我有:

int year = 12;
int month = 10;
int day = 9;
unsigned char date[3];

date[0] = year & 0xFF;
date[1] = month & 0xFF;
date[2] = day & 0xFF;

日期将包含 { 0x0C, 0x0A, 0x09 } 但我希望它是 { 0x12, 0x10, 0x09 }

最佳答案

您只需检索以十进制为基数的每个数字,然后将其乘以对应的十六进制数。

#include <stdio.h>

int hex(int v){
int total = 0;
int resultbase = 1;
while(v > 0 ){
total += resultbase * (v % 10);
resultbase *= 16;
v /= 10;
}

return total;
}

int main(){
printf ("12 => %x, 20 => %x\n", hex(12), hex(20));
return 0;

关于C - 将十进制数转换为压缩 BCD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12798375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com