如何将unsigned char类型的数组转换成int?
数组头一个字节是符号,如果是正,那好办,如果是负,该怎么转换成int型?比如说
unsigned char buff;
buff='-';(负号)
buff='0';
buff='2';
buff='3';
buff='4';
buff='5';
要转换成-02345
int* p=(int*)buff;
int x=*p;
这样可以吗 不行,数组里放的都是ASCII直,不能这样转换呢。
int p;
p=(buff-'0')*10000+(buff-'0')*1000+(buff-'0')*100+(buff-'0')*10+buff-'0';
p=buff=='-'?-p;p; atoi
C语言库函数名: atoi
功 能: 把字符串转换成整型数.
名字来源:array to integer 的缩写.
原型: int atoi(const char *nptr);
函数说明: 参数nptr字符串,如果 第一个非空格字符 不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。
头文件: #include<stdlib.h> 回复【1楼】lindabell欧海
-----------------------------------------------------------------------
回复【2楼】wowbanui
-----------------------------------------------------------------------
多谢 回复【1楼】lindabell欧海
-----------------------------------------------------------------------
-1234该怎么通过串口输出?
1234可以将1 2 3 4拿出来赋给一个char数组 然后串口输出
-1234可以用0-(-1234)得到1234 然后跟上面方法一样串口输出
有更简单的方法实现-1234的输出吗
页:
[1]