eisldkw 2023-08-31 15:57 采纳率: 20.5%
浏览 12

C语言中实现 LONG变量与数组之间的转移

C语言中 ,如何实现以下功能

1 、 将 long 型 变量 NUM 的数值  按16进制 形式存入  数组的 函数 比如  NUM=0X123456789ABCDEF0  存入数组 A[9] 后  A[0]=0X12     A[1]=0X34      A[2]=0X56      A[3]=0X78    A[4]=0X9A      A[5]=0XBC      A[6]=0XDE      A[7]=0XF0  
      相反有没有函数能将 A[0]-A[7] 的内容 转到 long型变量  num中 
2 、    将 long 型 变量 NUM 的数值  按压缩BCD码的 形式存入  数组的 函数 比如 NUM=1234567890  存入数组 A[9] 后  A[0]=12     A[1]=34      A[2]=56      A[3]=78    A[4]=90   
      相反有没有函数能将 A[0]-A[7] 的中的压缩BCD码的内容 转到 long型变量  num中 


  • 写回答

4条回答 默认 最新

  • 浪客 2023-08-31 16:27
    关注

    1

    #include <stdio.h>
    #include <string.h>
    
    typedef union t
    {
        unsigned char A[8];
        long long num;
    } TT;
    
    int main(void)
    {
        char str[30] = "0x", tmp[10];
        long long r1, num =  0x123456789ABCDEF0;
        TT t;
        t.num = num;
        printf("%lld\n", num);
        for (int i = 7; i >= 0; i--)
        {
            sprintf(tmp, "%X", t.A[i]);
            strcat(str, tmp);
        }
        sscanf(str, "%llX", &r1);
        printf("%s\n%lld\n", str, r1);
        
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 8月31日