|
发表于 2011-9-13 12:20:08
|
显示全部楼层
#include "stdio.h"
#include "math.h"
#define CNT 180 //点数
#define MUL 1024 //倍数
#define SFT 520 //偏移
#define PI 3.1415926535898 //圆周率
void main(void)
{
FILE *fp;
char str[] = {'0','x','0','0','0','0',',',0x20};
unsigned char i = 0;
unsigned char n;
unsigned short int m;
unsigned long ss = 0;
float j,k;
fp = fopen("sin.txt","r+");
for(i = 0; i < CNT; i++)
{
j = sin(2*i*PI/CNT);
k = j*MUL/2 + SFT;
m = (unsigned int)k;
str[2] = (unsigned char)((m & 0xF000) >> 12);
str[3] = (unsigned char)((m & 0x0F00) >> 8);
str[4] = (unsigned char)((m & 0x00F0) >> 4);
str[5] = (unsigned char)((m & 0x000F) );
printf("%d",str[5]);
for(n=2; n<6; n++)
if(str[n]<10)
str[n] += '0';
else
str[n] += ('A'-10);
fseek(fp, ss, SEEK_SET);
fwrite(str, 8, 1, fp);
ss += 8;
}
fclose(fp);
}
刚刚下载了一个编译器运行了一下,没问题
注意要自己新建一个sin.txt的空文件,还有就是输出没有换行 |
|