Chinaunix首页 | 论坛 | 博客

分类: C/C++

2012-07-19 16:25:59

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;
    }
}
阅读(1868) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~