|
- /*
- 单片机型号:C51内核/STC任意 晶振频率:任意
- */
- #include "reg51.h"
- sbit led0 = P1 ^ 0;
- sbit led1 = P1 ^ 1;
- sbit led2 = P1 ^ 2;
- sbit led3 = P1 ^ 3;
- sbit led4 = P1 ^ 4;
- sbit led5 = P1 ^ 5;
- sbit led6 = P1 ^ 6;
- sbit led7 = P1 ^ 7;
- /*
- 判断32位IEEE754格式浮点小数数据、易语言的 是否运算正确()
- 数值正确返回1、运算错误、溢出、INF、NAN返回0
- */
- bit IsCalcOK(float val){
- union u{
- float f;
- unsigned long l;
- } i;
- i.f = val;
- if((i.l & 0x7F800000) == 0x7F800000){ //大端 (8位指数位全部为1)
- return 0;
- }
- return 1;
- }
- void main(){
- led0 = !IsCalcOK(0);
- led1 = !IsCalcOK(3.1415926);
- led2 = !IsCalcOK(-3.1415926);
- led3 = !IsCalcOK(1e+50); //溢出
- led4 = !IsCalcOK(-1e+50); //溢出
- led5 = !IsCalcOK(1e+10);
- led6 = !IsCalcOK(-1e+10);
- led7 = !IsCalcOK(1234567890);
- while(1);
- }
复制代码 |
|