C言語なら俺に聞け(入門篇) Part 19
■ このスレッドは過去ログ倉庫に格納されています
0753デフォルトの名無しさん
2007/10/11(木) 08:43:37#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef union tag_f2i_t{// IEEE754 前提
float f;
struct{unsigned karisuu:23, sisuu:8, sign:1;};
}f2i_t;
#define NUM 10000
#define TRY 10000
int main(void){
f2i_t *p;
float x[NUM], *p2;
unsigned char y[NUM];
clock_t c;
int i, j;
for(i=0;i<NUM;i++) x[i]=rand()%100,y[i]=0;
c=clock();
for(j=0;j<TRY;j++){
p=(f2i_t*)x;
for(i=0;i<NUM;i++){
y[i]=((0x800000 | p->karisuu) >> (150-p->sisuu));
p++;
}
}
printf("%d %.3f[sec]\n", y[0], (double)(clock()-c)/CLOCKS_PER_SEC);
c=clock();
for(j=0;j<TRY;j++)
for(i=0,p2=x;i<NUM;i++,p2++) y[i]=*p2;
printf("%d %.3f[sec]\n", y[0], (double)(clock()-c)/CLOCKS_PER_SEC);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています