我正在从UART获取字符,例如"\n43\n"或"\n912\n"。我打算将其设为一个整数,以便比较我的应用程序中的值。
示例:
int a = 43;
int b;
/*Combine the character getting from the uart copy to integer "b";*/
if(a==b)
{
/*perform some operation*/
}
由于字符ASCII小于256
,因此可以安全地执行以下操作。
int combine(char a, char b, char c)
{
return (a << 20) | (b << 10) | c;
}
当a、b、c的值小于1000
附近时,如2^10 = 1024
一样,这是有效的。
要取回它们:
a = combined >> 20;
b = (combined >> 10) & 0x3ff;
c = combined & 0x3ff;
#include<string.h>
#include<stdio.h>
int main()
{
int number;
char a[30] = "n43n";
number = atoi(a);
printf("magic is %d",number);
if(number == 43)
printf("This works....!n");
return 0;
}
你听说过atoi()
吗
编辑:
int main()
{
int number = 0;
char a[30];
a[0] = '4';
a[1] = '3';
a[2] = ' ';
number = atoi(a);
printf("magic is %d",number);
return 0;
}