猕猴探头,目录在这儿
前言
今天种下一颗种子,明天也许 被虫子吃掉 ;也许会烂在地里 被虫子吃掉 ;也许,会发芽,然后 被虫子吃掉 ?总之,一天总不会长成参天大树或者一朵花,一颗草?这告诉我们做人要学会坚持,你不努力永远不知道你会遇到什么,变成什么。当然,努力了也不会知道[\doge]。
今天且容我留下几行代码,望它来年长成人工智能助我躺平[\doge]。
将数值转为ASC数据1
uint8_t NUM_ASC(uint32_t num,uint8_t *array)
{
uint8_t i = 0;
uint8_t len = 0;
for(i=0; i<254; i++)//获得10进制数据并转换为ASCII值存进指针
{
if (num/10 != 0) {
array[i] = num%10+48;
num = num/10;
}else {
array[i] = num;
len = i+1;
break;
}
}
uint8_t temp = 0;
for(i=0; i<len/2; i++)//反转数据顺序
{
temp = array[i];
array[i] = array[len-1-i];
array[len-1-i] = temp;
}
return len;
}
其中,uint8_t 是8位无符号整型的别名。以此类推,uint16_t 对应16位无符号整型,uint32_t 对应32位无符号整型。大家可以按照自己的程序对数据类型进行修改。
这个函数实现了ASCII值与整型的转换,其本身也非常简单。
- 输入一个存储数据的指针,和一个数值;
- 通过不断对数值除以10和对10求余并转为ASCII值存进指针;
- 将指针中存储的数据顺序反过来。
- 返回数据长度。
目前来看,这个函数似乎还是有改进空间的。比如,将函数中的10更换为2就会得到数值的2进制ASCII数据,欢迎大家留言讨论,共同进步。
在此重申,咱们写代码严禁 盲目照搬 哈,这样是不会进步的。
结语
本人社恐,CSDN新人一枚,请大家多担待。平时会经常在CSDN上搜一些东西。现望白嫖一指导本人嵌入式编程及画PCB板的良师,想要自领(免费的学徒\doge)。
ASCII码表中48-57也就是16进制0x30到0x39对应数字0到9,此函数的功能正是基于此实现的 ↩︎