| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1426 人关注过本帖
标题:C语言相关问题
只看楼主 加入收藏
axiaochuan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-11-15
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
C语言相关问题
const uint8_t CC[16] = {0x30, 0x31, 0x32, 0x33,0x34,0x35, 0x36, 0x37, 0x38, 0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46};

uint8_t One_FunA(uint8_t bin) {
bin &= 0x0F;
return CC[bin];
}

uint16_t One_FunB(uint8_t hex) {
uint16_t u16=0x0;
uint8_t h = hex&0xF0;
h = h >> 4;
h = One_FunA(h);
uint8_t l = One_FunA(hex&0x0F);
u16 = ((uint16_t)h)<<8;
u16 |= (uint16_t)l;
return u16;
}

uint8_t abc[5] = {0xA9, 0x52, 0x33, 0x0A, 0x7F};

void One_FunC(void) {
uin16_t dabc[5];
for (uint8_t i=0; i<sizeof(abc); i++) {
dabc[i] = One_FunB(abc[i]);
}
while(1);
}
请回答:
1.    该程序段的执行起点是哪个函数?

2.    One_FunA 、One_FunB 、One_FunC 的调用关系如何?

3.    执行完该程序段后,数组“dabc”的首末项值分别为:
dabc[0] =            ;dabc[4] =            
搜索更多相关主题的帖子: C语言 执行 bin abc void 
2021-11-15 11:33
axiaochuan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-11-15
收藏
得分:0 
这些声明方式我怎么看不懂
刚接触微机原理的课程
2021-11-15 11:39
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:20 
你们老师写的程序吗,太差劲了,用下面这个吧,几行能解决的事情非要弄几十行,并且还很乱。
程序代码:
void binToHex(uint8_t *input, uint16_t inLen, uint8_t *output)
{
    while (inLen--)
    {
        *output++ = "0123456789ABCDEF"[*input>>4];
        *output++ = "0123456789ABCDEF"[*input&15];
        input++;
    }
}
2021-11-15 12:31
axiaochuan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-11-15
收藏
得分:0 
回复 3楼 diycai
是的 我看不懂
下面那几个题怎么说
2021-11-15 12:42
axiaochuan
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2021-11-15
收藏
得分:0 
回复 3楼 diycai
1:15: error: unknown type name ‘uint8_t’
 void binToHex(uint8_t *input, uint16_t inLen, uint8_t *output)
               ^
1:31: error: unknown type name ‘uint16_t’
 void binToHex(uint8_t *input, uint16_t inLen, uint8_t *output)
                               ^
1:47: error: unknown type name ‘uint8_t’
 void binToHex(uint8_t *input, uint16_t inLen, uint8_t *output)
 
这要什么环境运行的啊
2021-11-15 12:49
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:0 
回复 5楼 axiaochuan
程序代码:
#include <stdio.h>

typedef unsigned char    uint8_t;
typedef unsigned short    uint16_t;

void binToHex(uint8_t *input, uint16_t inLen, uint8_t *output)
{
    while (inLen--)
    {
        *output++ = "0123456789ABCDEF"[*input>>4];
        *output++ = "0123456789ABCDEF"[*input&15];
        input++;
    }
}

uint8_t abc[5] = {0xA9, 0x52, 0x33, 0x0A, 0x7F};

void main()
{
    uint8_t dabc[10];
    binToHex(abc, 5, dabc);
    for (int i=0; i<10; i++)
    {
        printf("%c", dabc[i]);
    }
}


[此贴子已经被作者于2021-11-15 13:19编辑过]

2021-11-15 13:16
快速回复:C语言相关问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021887 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved