1,float->char数组
不过不是 float 型转换成 char 型,而是把 float 型的数字转换成为“字符型数组”的表达方式。这种转换最简单的方法就是借用 里的 sprintf 函数,把实数打印到数组里。
例如:
float x = 65.1;
char a[20];
sprintf(a, "%g", x);
这样子,数组 a 里就会保存字符串 "65.1",即 a[0] = '6'; a[1] = '5'; a[2] = '.'; a[3] = '1'; a[4] = '\0';
2,float->char
所谓转换是这样的。例如:
float x = 65.1;
char c;
c = (char) x;
这样 c 里存的就是 65,即字符 'A'。
3,int(二进制)->char数组
((char *)&itemp)[0];
((char *)&itemp)[1];
例如:
void main(void)
{
unsigned int temp;
unsigned char i,j;
temp=0x1234;
i=((unsigned char *)&temp)[0];
j=((unsigned char *)&temp)[1];
while(1);
}
执行后:
i=0x12;
j=0x34;
强制类型转换,基地址,基地址+1
4.int(十进制)->char(数组)
1 #include
2 #include
3 int itemp=14;
4 char ctemp[2];
5 int main()
6 {
7 ctemp[0]=itemp/10+'0';
8 ctemp[1]=itemp%10+'0';
9 putchar(ctemp[0]);
10 putchar(ctemp[1]);
11 }
执行后:14
或者。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
/************************************************** *
函数名: IntToChar
* 参数:
* 形参:
* number: 待转换的整数
* numberString: 保存已转换好的字符串
* radix: 整数的进制,只能是八进制、十进制
* 返回值: void
* 功能:
* 把一整数转换为字符串
* 例如:
* 1200 => "1200"
**************************************************/
void IntToChar(int number, char* numberString, int radix)
{
int i =0;
int j =1;
for(i=1 ; ;i*=radix)
//求数字是几位数
{
if( 0 == number/i)
break;
j++;
}
for(i=0 ; ;i++)
{
numberString[j-2-i]=number%radix+ '0';
if(number< radix) break;
number =number/radix;
}
}