首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

浮点数组如何转unsigned char型

2012-04-27 
浮点数组怎么转unsigned char型?#include stdlib.htypedef unsigned char BYTEfloat a [200] {..}//

浮点数组怎么转unsigned char型?
#include <stdlib.h>

typedef unsigned char BYTE;

float a [200] = {..};//里面有200个浮点数
void main()
{
int i;
BYTE b[200];
for(i = 0;i<200;i++)
b[i]=(BYTE)a[i]; //这里这样转怎么不行呢?

for(i = 0; i<200;i++)
{
if((i+1)%10 == 0)printf("\n");
printf("%d ,",a[i]);
}


}

[解决办法]
lz想作甚??float占几个字节,char几个字节??强制类型转换会带来危险滴。
[解决办法]
(1)
BYTE b[200];
for(i = 0;i<200;i++)
b[i]=(BYTE)a[i];
//这个可以强制转换,但是会对浮点数首先去掉小数部分,然后赋值给b[i],但是如果超出b[i](也就是unsigned char )的表示范围则会 进行低位截取
(2)
for(i = 0; i<200;i++),
{
if((i+1)%10 == 0)printf("\n");
printf("%d ,",a[i]);
}
//由于数组a是 float型,但是采用 "%d"格式控制,则会发生错误,输出大多是0,这里建议LZ看看IEEE754
中关于浮点数的存储格式 以及 整型的存储格式,自然明白

热点排行