发新帖本帖赏金 50.00元(功能说明)我要提问
返回列表
打印
[技术讨论]

C语言十六进制数组转换成十进制数组

[复制链接]
2097|32
手机看帖
扫描二维码
随时随地手机跟帖
楼主
xch| | 2023-3-8 16:02 | 显示全部楼层 回帖奖励 |倒序浏览
把十六进制序列切机相同长度。每一段都转换成十进制序列,按照十进制每位占据一字节,得到差2^N的几段十进制序列。
然后用小学生乘法把几段十进制序列乘2^n ,加在一起

使用特权

评论回复
沙发
xch| | 2023-3-8 18:11 | 显示全部楼层
梦幻泡影 发表于 2023-3-8 18:01
现在MCU能存储的最长数据只有8byte,如果要运算10byte以上的就搞不定了,得用特殊算法 ...

就是小学生都会的算法

使用特权

评论回复
板凳
xch| | 2023-3-9 07:46 | 显示全部楼层
我写了一个转换代码。
不知道为啥二姨不让发表,说里面有敏感词

使用特权

评论回复
地板
xch| | 2023-3-9 07:52 | 显示全部楼层

使用特权

评论回复
5
xch| | 2023-3-9 07:53 | 显示全部楼层

使用特权

评论回复
6
xch| | 2023-3-9 07:56 | 显示全部楼层
Input HEX String:1234567890abcdef0
DEC string:20988295476718395120
用单片机算,瞬间完成

使用特权

评论回复
7
xch| | 2023-3-9 07:59 | 显示全部楼层

使用特权

评论回复
8
xch| | 2023-3-9 08:01 | 显示全部楼层
#define MAXIUM_INPUT_NUM 40
#define MAXIUM_OUTPUT_DIGI (MAXIUM_INPUT_NUM * 2)

uint8_t dec_string[MAXIUM_OUTPUT_DIGI+1], hex_string[MAXIUM_INPUT_NUM];
uint8_t index_hex = 0, index_dec = 0;
uint8_t cnt = 0;

uint8_t echo(uint8_t inp) {
  if ((inp =='\n')||(inp=='\r'))
  {
    printf("\n Input HEX String:");
    for (uint8_t i = 0; i < cnt; i++) {
      printf("%x", hex_string[i]);
    }
    printf("\n");
    return 0;
  }

  if ((inp >= '0') && (inp <= '9'))
    inp = inp - '0';
   else if( (inp >= 'a') && (inp <= 'f'))
    inp =inp-'a'+10;
  else  if( (inp >= 'A') && (inp <= 'F'))
    inp =inp-'A'+10;
    else return 1;
   
    if (cnt < MAXIUM_INPUT_NUM) {
      hex_string[cnt] = inp;
      cnt++;
    }
    printf("%x", inp);
    return 1;

}

使用特权

评论回复
9
xch| | 2023-3-9 08:02 | 显示全部楼层
void add_proc(uint8_t inp,uint8_t digi)
{
  uint8_t carray;
  if (inp==0) return;
  dec_string[digi] +=  inp;
  carray = dec_string[digi]/10;
  dec_string[digi]=dec_string[digi]%10;
  if (carray)
  {
    add_proc(carray,digi+1);
  }
}

使用特权

评论回复
10
xch| | 2023-3-9 08:03 | 显示全部楼层
这里面有敏感词?

使用特权

评论回复
11
xch| | 2023-3-9 08:05 | 显示全部楼层
这里面也有敏感词。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
梦幻泡影 + 3
12
xch| | 2023-3-20 09:40 | 显示全部楼层

你没检查一下打错字?

使用特权

评论回复
13
xch| | 2023-3-20 09:52 | 显示全部楼层
test.zip (23.65 KB) 为 codeblocks 工程

使用特权

评论回复

打赏榜单

梦幻泡影 打赏了 50.00 元 2023-03-20
理由:知识无价

发新帖 本帖赏金 50.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则