|
因为在DSP开发时发现,他的浮点数和C语言的浮点数处理不同
花了些时间研究,大致如图,算法不难,主要涉及到很多类型的强制转换
- #include <stdio.h>
- void showValf(float f){
- printf("%f, %08X, %ld\n",f,(long)(.5+(float)0x800000*f),(long)(.5+(float)0x800000*f));
- }
- void showVall(long l){
- printf("%d, %08X, %f\n",l,l,(float)l/0x800000);
- }
- int main(int argc, char *argv[]){
- showValf(1);
- showValf(2);
- showValf(0.0001);
- showValf(0.1);
- showValf(3.16227769851685);
- showVall(839);
- showVall(838861);
- showVall(8388608);
- showVall(26527108);
- }
复制代码 |
|