亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? serial.c

?? 在別處找到的一些uc/os-ii的一些資料
?? C
?? 第 1 頁 / 共 2 頁
字號:
                return;
            }
            else if(ch=='\n'){PrintChar(10);PrintChar(13);}
            else if(ch=='\t'){
                for(j=0;j<TABNum;j++)
                    PrintChar(' ');
            }
            else PrintChar(ch);
        }
        ch=*fmt++;
        switch(ch){
            case 'c':
                PrintChar(*((char *)p));
                p=(char *)p+1;
                break;
            case 'd':
                PrintN(*((int *)p),10);
                p=(int *)p+1;
                break;
            case 'x':
                PrintN(*((int *)p),16);
                p=(int *)p+1;
                break;
            case 'o':
                PrintUN(*((int *)p),8);
                p=(int *)p+1;
                break;
            case 'b':
                PrintUN(*((int *)p),2);
                p=(int *)p+1;
                break;
            case 'l':
                ch=*fmt++;
                switch(ch){
                    case 'd':
                        PrintLN(*((long *)p),10);
                        p=(long *)p+1;
                        break;
                    case 'o':
                        PrintLUN(*((long *)p),8);
                        p=(long *)p+1;
                        break;
                    case 'u':
                        PrintLUN(*((unsigned long *)p),10);
                        p=(unsigned long *)p+1;
                        break;
                    case 'b':
                        PrintLUN(*((long *)p),2);
                        p=(long *)p+1;
                        break;
                    case 'x':
                        PrintLN(*((long *)p),16);
                        p=(long *)p+1;
                        break;
                    default:
//出臨界區(qū)
#pragma ASM
    POP IE;
#pragma ENDASM
                        return;
                }
                break;
            case 'f':
                DispF(*((float *)p));
                p=(float *)p+1;
                break;
            case 'u':
                PrintUN(*((unsigned int *)p),10);
                p=(unsigned int *)p+1;
                break;
            case 's':
                PrintStr(*((char **)p));
                p=(char **)p+1;
                break;
            case '%':
                PrintChar('%');
                p=(char *)p+1;
                break;
            default:
//出臨界區(qū)
#pragma ASM
    POP IE;
#pragma ENDASM
                return;
        }
    }
}

void PrintN(int n,int b) reentrant  //十進制顯示整形數(shù)
{
    if(b==16){PrintWord(n);return;}
	if(n<0){PrintChar('-');n=-n;}
	if(n/b)
	    PrintN(n/b,b);
	PrintChar(n%b+'0');
}

void PrintUN(unsigned int n,unsigned int b) reentrant  //十進制顯示無符號整形數(shù)
{
    if(b==16){PrintWord(n);return;}
	if(n/b)
	    PrintUN(n/b,b);
	PrintChar(n%b+'0');
}


void PrintLN(long n,long b) reentrant  //十進制顯示長整形數(shù)
{
    if(b==16){PrintLong(n);return;}
	if(n<0){PrintChar('-');n=-n;}
	if(n/b)
	    PrintLN(n/b,b);
	PrintChar(n%b+'0');
}

void PrintLUN(unsigned long n,unsigned long b) reentrant  //十進制顯示無符號長整形數(shù)
{
    if(b==16){PrintLong(n);return;}
	if(n/b)
	    PrintLUN(n/b,b);
	PrintChar(n%b+'0');
}

//============================================================================================
//KEIL C51的float類型采用IEEE-754標準存儲,占4字節(jié)。
//    S E E E E E E E E E (1) M M M M M M M M M M M M M M M M M M M M M M M
//  S    1bit    正負標志位0=正;1=負
//  E    8bit    二進制階碼=(EEEEEEEE)-127
//  M   23bit    24bit尾數(shù),只存儲23位,最高位固定為1。此方法用最較少的位數(shù)實現(xiàn)了較高的有效數(shù),提高了精度。
//
//  尾數(shù)為24bit,最高可表達的整數(shù)值為2^24-1=16777215,也就是說,小于等于16777215的整數(shù)可以被精確
//顯示。這決定了十進制浮點數(shù)的有效位數(shù)為7位,10^7<16777215<10^8,10的7次方以內(nèi)的數(shù)小于16777215,
//可以精確表示。使用科學記數(shù)法時,整數(shù)部分占1位,所以小數(shù)部分最大占7-1=6位,即最大有6位精度。
//  長整形數(shù)和浮點數(shù)都占4字節(jié),但表示范圍差別很大。浮點數(shù)的范圍為+-1.175494E-38到+-3.402823E+38,
//無符號長整形數(shù)范圍為0到4294967295。顯示浮點數(shù)要用到長整形數(shù)保存數(shù)據(jù),可他們范圍差這么多,怎么辦呢?
//  仔細觀察十進制浮點數(shù)的顯示,有一個尾數(shù)和一個階碼,由上面論證可知32位浮點數(shù)最大有效數(shù)字為7位十進制
//數(shù),超出此范圍的數(shù)字有截斷誤差,不必理會,因此,使浮點數(shù)尾數(shù)能夠放在長整形數(shù)里保存。階碼為-38到38,
//一個char型變量就可以保存。
//  綜上所述,以10^7的最大跨度為窗口(小于10^7也可以,如:10,100...10000等,但決不能大于它,那樣會
//超出精度范圍),定位浮點數(shù)的量級,然后取出7位尾數(shù)的整數(shù)值,再調整階碼,就可以精確顯示此浮點數(shù)。
//  量級尺度如下:
//    (-38)-(-35)-(-28)-(-21)-(-14)-(-7)-(0)-(7)-(14)-(21)-(28)-(35)-(38)
//  請嚴格按照KEIL手冊給出的浮點數(shù)范圍顯示,因為數(shù)值空間沒有完全使用,有些值用于錯誤指示和表示正負無窮。
//小于1.175494E-38的數(shù)仍可以顯示一些,但最好不用,以免出錯。我采用直接判斷的方法,剔除此種情況。
//  在計算機里結合律不成立,(a*b)*c!=a*(b*c),原則是先讓計算結果值動態(tài)范圍小的兩個數(shù)運算,請注意程序里
//的寫法。
//  注:(1E38/b)*1E6不要寫成1E44/b,因為無法在32位浮點數(shù)里保存1E44,切記!
//  計算機使用二進制數(shù)計算,能有效利用電子器件高速開關的特性,而人習慣于十進制數(shù)表示,二進制和十進制
//沒有方便的方法轉換,只能通過大量計算實現(xiàn),浮點數(shù)的十進制科學記數(shù)法顯示尤其需要大量的運算,可見,顯示
//一個浮點數(shù)要經(jīng)過若干次浮點運算,沒有必要就不要顯示,花在顯示上的時間比計算的耗時都要多得多。
//============================================================================================
void DispF(float f) reentrant  //用科學記數(shù)法顯示浮點數(shù),在float全范圍內(nèi)精確顯示,超出范圍給出提示。
{                              //+-1.175494E-38到+-3.402823E+38
    float tf,b;
    unsigned long w;
    char i,j;
    if(f<0){
        PrintChar('-');
        f=-1.0*f;
    }
    if(f<1.175494E-38){
        yyprintf("?.??????");//太小了,超出了最小范圍。
        return;
    }
    if(f>1E35){  //f>10^35
        tf=f/1E35;
        b=1000.0;
        for(i=0,j=38;i<4;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(1E29*b);  //1E35*b/1E6
        PrintW(w,j);
    }
    else if(f>1E28){  //10^28<f<=10^35
        tf=f/1E28;
        b=1E7;
        for(i=0,j=35;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(1E22*b);  //1E28*b/1E6
        PrintW(w,j);
    }
    else if(f>1E21){  //10^21<f<=10^28
        tf=f/1E21;
        b=1E7;
        for(i=0,j=28;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(1E15*b);  //1E21*b/1E6
        PrintW(w,j);
    }
    else if(f>1E14){  //10^14<f<=10^21
        tf=f/1E14;
        b=1E7;
        for(i=0,j=21;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(1E8*b);  //1E14*b/1E6
        PrintW(w,j);
    }
    else if(f>1E7){  //10^7<f<=10^14
        tf=f/1E7;
        b=1E7;
        for(i=0,j=14;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(10.0*b);  //1E28*b/1E6
        PrintW(w,j);
    }
    else if(f>1){  //1<f<=10^7
        tf=f;
        b=1E7;
        for(i=0,j=7;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f/(1E-6*b);  //1E0*b/1E6
        PrintW(w,j);
    }
    else if(f>1E-7){  //10^-7<f<=1
        tf=f*1E7;
        b=1E7;
        for(i=0,j=0;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E13/b);  //(1E7/b)*1E6
        PrintW(w,j);
    }
    else if(f>1E-14){  //10^-14<f<=10^-7
        tf=f*1E14;
        b=1E7;
        for(i=0,j=-7;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E20/b);  //(1E14/b)*1E6
        PrintW(w,j);
    }
    else if(f>1E-21){  //10^-21<f<=10^-14
        tf=f*1E21;
        b=1E7;
        for(i=0,j=-14;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E27/b);  //(1E21/b)*1E6
        PrintW(w,j);
    }
    else if(f>1E-28){  //10^-28<f<=10^-21
        tf=f*1E28;
        b=1E7;
        for(i=0,j=-21;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E34/b);  //(1E28/b)*1E6
        PrintW(w,j);
    }
    else if(f>1E-35){  //10^-35<f<=10^-28
        tf=f*1E35;
        b=1E7;
        for(i=0,j=-28;i<8;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E35/b)*1E6;  //(1E35/b)*1E6
        PrintW(w,j);
    }
    else{  //f<=10^-35
        tf=f*1E38;
        b=1000.0;
        for(i=0,j=-35;i<4;i++,j--)
            if(tf/b<1) b=b/10.0;
            else break;
        w=f*(1E38/b)*1E6;  //(1E38/b)*1E6
        PrintW(w,j);
    }
}

void PrintW(unsigned long w,char j) reentrant  //科學記數(shù)法,顯示十進制尾數(shù)和階碼。
{
    char i;
    unsigned long tw,b;
    
    //if(j<-38){yyprintf("?.??????");return;}//太小了,超出最小表數(shù)范圍。
    //if(j>38){yyprintf("*.******");return;}此算法不會出現(xiàn)j>38的情況。
    
    tw=w/1000000;
    PrintChar(tw+'0');PrintChar('.');
    w=w-tw*1000000;
    b=100000;
    for(i=0;i<6;i++){
        tw=w/b;
        PrintChar(tw+'0');
        w=w-tw*b;
        b=b/10;
    }
    yyprintf("E%d",(int)j);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久亚洲综合网 | 亚洲欧美视频一区| 一二三四区精品视频| 亚洲欧美激情小说另类| 国产91丝袜在线播放九色| 精品日韩一区二区三区| 欧美日韩精品高清| 国产精品久久久久7777按摩| 日韩一区精品视频| 成人国产精品免费观看视频| 日韩欧美成人一区二区| 亚洲国产精品久久人人爱 | 欧美人xxxx| 中文字幕一区免费在线观看| 九九国产精品视频| 日韩一级片网址| 亚洲一区在线看| 欧美伊人久久大香线蕉综合69| 国产精品天干天干在线综合| 国产电影一区二区三区| 国产午夜亚洲精品午夜鲁丝片| 一级女性全黄久久生活片免费| av电影天堂一区二区在线| 国产欧美一区二区精品久导航 | 337p粉嫩大胆噜噜噜噜噜91av| 日本美女一区二区三区视频| 制服丝袜av成人在线看| 久久国产精品色婷婷| 欧美大片在线观看一区| 国产麻豆视频一区| 最新不卡av在线| 波多野结衣在线aⅴ中文字幕不卡| 欧美国产欧美亚州国产日韩mv天天看完整 | 91天堂素人约啪| 亚洲大型综合色站| 久久亚洲一区二区三区四区| 国产一区二区三区久久久| 欧美高清在线精品一区| 成人教育av在线| 午夜不卡av在线| 欧美一区二区三区日韩| 成人一级视频在线观看| 亚洲电影激情视频网站| 久久亚洲私人国产精品va媚药| 92国产精品观看| 日本午夜一区二区| 久久久国产精品午夜一区ai换脸| 成人av在线资源网站| 亚洲小说欧美激情另类| 国产欧美一区二区在线| 日韩亚洲国产中文字幕欧美| 不卡在线视频中文字幕| 精品在线免费观看| 中文字幕在线不卡视频| 久久午夜羞羞影院免费观看| 日本久久精品电影| www.久久精品| 三级影片在线观看欧美日韩一区二区 | 久久―日本道色综合久久| 欧美最新大片在线看 | 美脚の诱脚舐め脚责91| 午夜精品福利在线| 久久综合中文字幕| 日韩欧美色综合| 制服丝袜在线91| 日韩女优毛片在线| 成人va在线观看| 一区二区三区在线观看欧美 | 亚洲欧美日韩久久精品| 久久久国产综合精品女国产盗摄| 欧美精品视频www在线观看| 亚洲成av人影院在线观看网| 又紧又大又爽精品一区二区| 久久久久久麻豆| 中文字幕在线一区| 亚洲免费观看在线视频| 亚洲mv在线观看| 麻豆传媒一区二区三区| 精品制服美女丁香| av欧美精品.com| 欧美在线观看一二区| 2020国产精品久久精品美国| 91网站视频在线观看| 欧美午夜精品久久久| 欧美不卡一区二区三区四区| 欧美男人的天堂一二区| 久久久久久久久久久久久久久99| 国产精品入口麻豆原神| 亚洲国产精品一区二区久久 | 国产精品国产三级国产专播品爱网| 国产精品伦理一区二区| 琪琪一区二区三区| 国产大陆a不卡| 成人av网址在线| 久久―日本道色综合久久| 一区二区三区精品视频在线| 99精品一区二区| 欧美高清在线一区二区| 国产剧情一区二区三区| 日韩欧美成人午夜| 天堂在线一区二区| 911精品国产一区二区在线| 亚洲高清久久久| 3d动漫精品啪啪1区2区免费 | 日韩一区二区免费高清| 亚洲尤物在线视频观看| 欧美最猛黑人xxxxx猛交| 亚洲欧美激情一区二区| 欧美三级蜜桃2在线观看| 亚洲一区二区三区四区中文字幕| 成人午夜电影网站| 亚洲免费毛片网站| 欧美日韩国产高清一区二区三区| 亚洲成年人网站在线观看| 91精品国产综合久久婷婷香蕉 | 韩国一区二区视频| 777亚洲妇女| 国产剧情一区二区| 1000部国产精品成人观看| 色哟哟亚洲精品| 奇米777欧美一区二区| 久久婷婷久久一区二区三区| 成人高清免费观看| 一区二区三区影院| 精品成人一区二区三区| 91美女在线观看| 久久 天天综合| 一区二区三区自拍| 欧美日韩不卡在线| 国产91在线观看丝袜| 亚洲在线观看免费| 国产精品久久久久永久免费观看| 欧美日韩亚洲另类| 亚洲午夜三级在线| 欧美一区二区三区免费观看视频| 狠狠色丁香久久婷婷综合_中| 中文字幕一区二区视频| 精品欧美一区二区在线观看| 97久久超碰精品国产| 韩国理伦片一区二区三区在线播放| 中文字幕日韩精品一区 | 日本精品视频一区二区| 国产精品18久久久久久久久| 久久激五月天综合精品| 无吗不卡中文字幕| 亚洲国产欧美一区二区三区丁香婷| 国产欧美日韩中文久久| 精品福利av导航| 精品处破学生在线二十三| 日韩午夜在线观看视频| 日韩欧美中文一区| 亚洲精品一区二区三区99| 日韩精品一区二| 亚洲精品一区二区三区福利| 精品三级在线观看| 久久久久久久久伊人| 国产婷婷色一区二区三区四区| 欧美本精品男人aⅴ天堂| 精品久久久久久久久久久久久久久| 日韩欧美一区二区免费| 国产日韩欧美一区二区三区乱码| 久久精品网站免费观看| 欧美国产精品劲爆| 亚洲摸摸操操av| 丝袜亚洲另类丝袜在线| 国内偷窥港台综合视频在线播放| 国产乱国产乱300精品| eeuss影院一区二区三区| 色噜噜久久综合| 91精品国产综合久久福利软件 | 国产一区二区三区av电影| 欧美aaaaaa午夜精品| 国产91丝袜在线播放| 91豆麻精品91久久久久久| 日韩一区二区电影| 欧美日韩高清一区二区不卡| 精品国产成人系列| 亚洲一区二区视频在线观看| 捆绑调教美女网站视频一区| 99免费精品视频| 欧美大片日本大片免费观看| 国产精品国产三级国产a| 免费精品视频在线| 一区二区在线看| 国产一区二区三区久久久| 欧美三级日韩三级| 美日韩一区二区| 成人精品视频一区| wwwwxxxxx欧美| 美女精品自拍一二三四| 欧美久久久影院| 亚洲精品国产一区二区精华液 | 丁香六月久久综合狠狠色| 欧美一区二区视频在线观看2020| 亚洲激情成人在线| 91免费国产视频网站| 亚洲欧美在线另类| 99久久久精品| 亚洲美女区一区| 91久久香蕉国产日韩欧美9色|