zfzdhz 发表于 2011-9-12 11:14:48

如何将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;
这样可以吗

lindabell 发表于 2011-9-12 11:38:11

不行,数组里放的都是ASCII直,不能这样转换呢。
int p;
p=(buff-'0')*10000+(buff-'0')*1000+(buff-'0')*100+(buff-'0')*10+buff-'0';
p=buff=='-'?-p;p;

wowbanui 发表于 2011-9-12 12:00:03

atoi

C语言库函数名: atoi

功 能: 把字符串转换成整型数.

名字来源:array to integer 的缩写.

原型: int atoi(const char *nptr);

函数说明: 参数nptr字符串,如果 第一个非空格字符 不存在或者不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。

头文件: #include<stdlib.h>

zfzdhz 发表于 2011-9-12 15:10:40

回复【1楼】lindabell欧海
-----------------------------------------------------------------------

回复【2楼】wowbanui
-----------------------------------------------------------------------

多谢

zfzdhz 发表于 2011-9-14 10:03:54

回复【1楼】lindabell欧海
-----------------------------------------------------------------------

-1234该怎么通过串口输出?
1234可以将1 2 3 4拿出来赋给一个char数组 然后串口输出
-1234可以用0-(-1234)得到1234 然后跟上面方法一样串口输出
有更简单的方法实现-1234的输出吗
页: [1]
查看完整版本: 如何将unsigned char类型的数组转换成int?