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

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

?? softfloat.c

?? 是關于linux2.5.1的完全源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*-------------------------------------------------------------------------------Returns the result of converting the 32-bit two's complement integer `a' tothe single-precision floating-point format.  The conversion is performedaccording to the IEC/IEEE Standard for Binary Floating-point Arithmetic.-------------------------------------------------------------------------------*/float32 int32_to_float32( int32 a ){    flag zSign;    if ( a == 0 ) return 0;    if ( a == 0x80000000 ) return packFloat32( 1, 0x9E, 0 );    zSign = ( a < 0 );    return normalizeRoundAndPackFloat32( zSign, 0x9C, zSign ? - a : a );}/*-------------------------------------------------------------------------------Returns the result of converting the 32-bit two's complement integer `a' tothe double-precision floating-point format.  The conversion is performedaccording to the IEC/IEEE Standard for Binary Floating-point Arithmetic.-------------------------------------------------------------------------------*/float64 int32_to_float64( int32 a ){    flag aSign;    uint32 absA;    int8 shiftCount;    bits64 zSig;    if ( a == 0 ) return 0;    aSign = ( a < 0 );    absA = aSign ? - a : a;    shiftCount = countLeadingZeros32( absA ) + 21;    zSig = absA;    return packFloat64( aSign, 0x432 - shiftCount, zSig<<shiftCount );}#ifdef FLOATX80/*-------------------------------------------------------------------------------Returns the result of converting the 32-bit two's complement integer `a'to the extended double-precision floating-point format.  The conversionis performed according to the IEC/IEEE Standard for Binary Floating-pointArithmetic.-------------------------------------------------------------------------------*/floatx80 int32_to_floatx80( int32 a ){    flag zSign;    uint32 absA;    int8 shiftCount;    bits64 zSig;    if ( a == 0 ) return packFloatx80( 0, 0, 0 );    zSign = ( a < 0 );    absA = zSign ? - a : a;    shiftCount = countLeadingZeros32( absA ) + 32;    zSig = absA;    return packFloatx80( zSign, 0x403E - shiftCount, zSig<<shiftCount );}#endif/*-------------------------------------------------------------------------------Returns the result of converting the single-precision floating-point value`a' to the 32-bit two's complement integer format.  The conversion isperformed according to the IEC/IEEE Standard for Binary Floating-pointArithmetic---which means in particular that the conversion is roundedaccording to the current rounding mode.  If `a' is a NaN, the largestpositive integer is returned.  Otherwise, if the conversion overflows, thelargest integer with the same sign as `a' is returned.-------------------------------------------------------------------------------*/int32 float32_to_int32( float32 a ){    flag aSign;    int16 aExp, shiftCount;    bits32 aSig;    bits64 zSig;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    aSign = extractFloat32Sign( a );    if ( ( aExp == 0x7FF ) && aSig ) aSign = 0;    if ( aExp ) aSig |= 0x00800000;    shiftCount = 0xAF - aExp;    zSig = aSig;    zSig <<= 32;    if ( 0 < shiftCount ) shift64RightJamming( zSig, shiftCount, &zSig );    return roundAndPackInt32( aSign, zSig );}/*-------------------------------------------------------------------------------Returns the result of converting the single-precision floating-point value`a' to the 32-bit two's complement integer format.  The conversion isperformed according to the IEC/IEEE Standard for Binary Floating-pointArithmetic, except that the conversion is always rounded toward zero.  If`a' is a NaN, the largest positive integer is returned.  Otherwise, if theconversion overflows, the largest integer with the same sign as `a' isreturned.-------------------------------------------------------------------------------*/int32 float32_to_int32_round_to_zero( float32 a ){    flag aSign;    int16 aExp, shiftCount;    bits32 aSig;    int32 z;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    aSign = extractFloat32Sign( a );    shiftCount = aExp - 0x9E;    if ( 0 <= shiftCount ) {        if ( a == 0xCF000000 ) return 0x80000000;        float_raise( float_flag_invalid );        if ( ! aSign || ( ( aExp == 0xFF ) && aSig ) ) return 0x7FFFFFFF;        return 0x80000000;    }    else if ( aExp <= 0x7E ) {        if ( aExp | aSig ) float_exception_flags |= float_flag_inexact;        return 0;    }    aSig = ( aSig | 0x00800000 )<<8;    z = aSig>>( - shiftCount );    if ( (bits32) ( aSig<<( shiftCount & 31 ) ) ) {        float_exception_flags |= float_flag_inexact;    }    return aSign ? - z : z;}/*-------------------------------------------------------------------------------Returns the result of converting the single-precision floating-point value`a' to the double-precision floating-point format.  The conversion isperformed according to the IEC/IEEE Standard for Binary Floating-pointArithmetic.-------------------------------------------------------------------------------*/float64 float32_to_float64( float32 a ){    flag aSign;    int16 aExp;    bits32 aSig;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    aSign = extractFloat32Sign( a );    if ( aExp == 0xFF ) {        if ( aSig ) return commonNaNToFloat64( float32ToCommonNaN( a ) );        return packFloat64( aSign, 0x7FF, 0 );    }    if ( aExp == 0 ) {        if ( aSig == 0 ) return packFloat64( aSign, 0, 0 );        normalizeFloat32Subnormal( aSig, &aExp, &aSig );        --aExp;    }    return packFloat64( aSign, aExp + 0x380, ( (bits64) aSig )<<29 );}#ifdef FLOATX80/*-------------------------------------------------------------------------------Returns the result of converting the single-precision floating-point value`a' to the extended double-precision floating-point format.  The conversionis performed according to the IEC/IEEE Standard for Binary Floating-pointArithmetic.-------------------------------------------------------------------------------*/floatx80 float32_to_floatx80( float32 a ){    flag aSign;    int16 aExp;    bits32 aSig;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    aSign = extractFloat32Sign( a );    if ( aExp == 0xFF ) {        if ( aSig ) return commonNaNToFloatx80( float32ToCommonNaN( a ) );        return packFloatx80( aSign, 0x7FFF, LIT64( 0x8000000000000000 ) );    }    if ( aExp == 0 ) {        if ( aSig == 0 ) return packFloatx80( aSign, 0, 0 );        normalizeFloat32Subnormal( aSig, &aExp, &aSig );    }    aSig |= 0x00800000;    return packFloatx80( aSign, aExp + 0x3F80, ( (bits64) aSig )<<40 );}#endif/*-------------------------------------------------------------------------------Rounds the single-precision floating-point value `a' to an integer, andreturns the result as a single-precision floating-point value.  Theoperation is performed according to the IEC/IEEE Standard for BinaryFloating-point Arithmetic.-------------------------------------------------------------------------------*/float32 float32_round_to_int( float32 a ){    flag aSign;    int16 aExp;    bits32 lastBitMask, roundBitsMask;    int8 roundingMode;    float32 z;    aExp = extractFloat32Exp( a );    if ( 0x96 <= aExp ) {        if ( ( aExp == 0xFF ) && extractFloat32Frac( a ) ) {            return propagateFloat32NaN( a, a );        }        return a;    }    if ( aExp <= 0x7E ) {        if ( (bits32) ( a<<1 ) == 0 ) return a;        float_exception_flags |= float_flag_inexact;        aSign = extractFloat32Sign( a );        switch ( float_rounding_mode ) {         case float_round_nearest_even:            if ( ( aExp == 0x7E ) && extractFloat32Frac( a ) ) {                return packFloat32( aSign, 0x7F, 0 );            }            break;         case float_round_down:            return aSign ? 0xBF800000 : 0;         case float_round_up:            return aSign ? 0x80000000 : 0x3F800000;        }        return packFloat32( aSign, 0, 0 );    }    lastBitMask = 1;    lastBitMask <<= 0x96 - aExp;    roundBitsMask = lastBitMask - 1;    z = a;    roundingMode = float_rounding_mode;    if ( roundingMode == float_round_nearest_even ) {        z += lastBitMask>>1;        if ( ( z & roundBitsMask ) == 0 ) z &= ~ lastBitMask;    }    else if ( roundingMode != float_round_to_zero ) {        if ( extractFloat32Sign( z ) ^ ( roundingMode == float_round_up ) ) {            z += roundBitsMask;        }    }    z &= ~ roundBitsMask;    if ( z != a ) float_exception_flags |= float_flag_inexact;    return z;}/*-------------------------------------------------------------------------------Returns the result of adding the absolute values of the single-precisionfloating-point values `a' and `b'.  If `zSign' is true, the sum is negatedbefore being returned.  `zSign' is ignored if the result is a NaN.  Theaddition is performed according to the IEC/IEEE Standard for BinaryFloating-point Arithmetic.-------------------------------------------------------------------------------*/static float32 addFloat32Sigs( float32 a, float32 b, flag zSign ){    int16 aExp, bExp, zExp;    bits32 aSig, bSig, zSig;    int16 expDiff;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    bSig = extractFloat32Frac( b );    bExp = extractFloat32Exp( b );    expDiff = aExp - bExp;    aSig <<= 6;    bSig <<= 6;    if ( 0 < expDiff ) {        if ( aExp == 0xFF ) {            if ( aSig ) return propagateFloat32NaN( a, b );            return a;        }        if ( bExp == 0 ) {            --expDiff;        }        else {            bSig |= 0x20000000;        }        shift32RightJamming( bSig, expDiff, &bSig );        zExp = aExp;    }    else if ( expDiff < 0 ) {        if ( bExp == 0xFF ) {            if ( bSig ) return propagateFloat32NaN( a, b );            return packFloat32( zSign, 0xFF, 0 );        }        if ( aExp == 0 ) {            ++expDiff;        }        else {            aSig |= 0x20000000;        }        shift32RightJamming( aSig, - expDiff, &aSig );        zExp = bExp;    }    else {        if ( aExp == 0xFF ) {            if ( aSig | bSig ) return propagateFloat32NaN( a, b );            return a;        }        if ( aExp == 0 ) return packFloat32( zSign, 0, ( aSig + bSig )>>6 );        zSig = 0x40000000 + aSig + bSig;        zExp = aExp;        goto roundAndPack;    }    aSig |= 0x20000000;    zSig = ( aSig + bSig )<<1;    --zExp;    if ( (sbits32) zSig < 0 ) {        zSig = aSig + bSig;        ++zExp;    } roundAndPack:    return roundAndPackFloat32( zSign, zExp, zSig );}/*-------------------------------------------------------------------------------Returns the result of subtracting the absolute values of the single-precision floating-point values `a' and `b'.  If `zSign' is true, thedifference is negated before being returned.  `zSign' is ignored if theresult is a NaN.  The subtraction is performed according to the IEC/IEEEStandard for Binary Floating-point Arithmetic.-------------------------------------------------------------------------------*/static float32 subFloat32Sigs( float32 a, float32 b, flag zSign ){    int16 aExp, bExp, zExp;    bits32 aSig, bSig, zSig;    int16 expDiff;    aSig = extractFloat32Frac( a );    aExp = extractFloat32Exp( a );    bSig = extractFloat32Frac( b );    bExp = extractFloat32Exp( b );    expDiff = aExp - bExp;    aSig <<= 7;    bSig <<= 7;    if ( 0 < expDiff ) goto aExpBigger;    if ( expDiff < 0 ) goto bExpBigger;    if ( aExp == 0xFF ) {        if ( aSig | bSig ) return propagateFloat32NaN( a, b );        float_raise( float_flag_invalid );        return float32_default_nan;    }    if ( aExp == 0 ) {        aExp = 1;        bExp = 1;    }    if ( bSig < aSig ) goto aBigger;    if ( aSig < bSig ) goto bBigger;    return packFloat32( float_rounding_mode == float_round_down, 0, 0 ); bExpBigger:    if ( bExp == 0xFF ) {        if ( bSig ) return propagateFloat32NaN( a, b );        return packFloat32( zSign ^ 1, 0xFF, 0 );    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区在线视频| 樱桃国产成人精品视频| 国产精品国产三级国产aⅴ原创| 亚洲精品国产高清久久伦理二区| 久久99精品久久久久久动态图| 97超碰欧美中文字幕| 久久综合九色综合欧美亚洲| 亚洲国产精品久久久久婷婷884 | 亚洲国产你懂的| 国产精品一区二区三区乱码| 欧美一区二区三区白人| 一区二区三区在线观看国产| 成人在线视频一区二区| 久久久精品综合| 久久99精品国产.久久久久| 欧美视频一区二区三区| 亚洲精品国产成人久久av盗摄| 国产成都精品91一区二区三| 精品福利二区三区| 青椒成人免费视频| 欧美日韩国产综合久久| 一区二区三区国产精华| 色哟哟一区二区三区| 亚洲欧洲国产日韩| 成人精品免费看| 久久九九久久九九| 国产成人综合在线| 国产色产综合产在线视频| 黄色资源网久久资源365| 精品美女被调教视频大全网站| 日韩精品视频网站| 7777精品伊人久久久大香线蕉超级流畅 | 日本不卡高清视频| 欧美绝品在线观看成人午夜影视| 亚洲激情一二三区| 欧美日韩国产影片| 强制捆绑调教一区二区| 日韩欧美高清在线| 国产精品综合网| 国产精品视频麻豆| 一本久道久久综合中文字幕| 亚洲一区二区在线免费观看视频 | 91精品国产色综合久久ai换脸| 亚洲高清三级视频| 91精品国产一区二区三区香蕉| 喷水一区二区三区| 26uuu另类欧美亚洲曰本| 国产美女精品一区二区三区| 国产清纯在线一区二区www| 成人小视频在线| 亚洲综合一区二区三区| 欧美精品久久99| 国产成人午夜精品5599 | 国产午夜三级一区二区三| 国产高清亚洲一区| 亚洲免费观看视频| 日韩免费高清视频| 99视频热这里只有精品免费| 亚洲最新在线观看| 精品美女在线播放| 一本色道综合亚洲| 久久er精品视频| 国产精品久久久久久久久久久免费看| 97超碰欧美中文字幕| 日本不卡1234视频| 亚洲人成7777| 日韩欧美色电影| a级精品国产片在线观看| 首页综合国产亚洲丝袜| 国产视频911| 欧美一区二区三区四区在线观看| 国产一区二区三区四| 亚洲激情第一区| 欧美精品一区二区在线播放| 色又黄又爽网站www久久| 国产在线麻豆精品观看| 一区二区视频在线看| 亚洲精品一区二区三区影院| 91成人网在线| 国产成人亚洲综合a∨婷婷| 三级欧美韩日大片在线看| 成人免费一区二区三区视频| 精品乱人伦小说| 欧美性感一类影片在线播放| 国产成人夜色高潮福利影视| 日本强好片久久久久久aaa| 亚洲私人影院在线观看| 久久免费电影网| 欧美高清性hdvideosex| 色婷婷久久久久swag精品| 成人午夜短视频| 国产福利不卡视频| 久久精品999| 亚洲成人激情自拍| 一区二区三区四区高清精品免费观看 | 国产精品青草久久| 久久婷婷国产综合精品青草| 欧美高清一级片在线| 91黄色免费版| 91视频一区二区| 成人国产精品免费观看| 国产传媒日韩欧美成人| 国产一区91精品张津瑜| 久久精品国产一区二区| 欧美aa在线视频| 青青草国产精品97视觉盛宴| 午夜在线电影亚洲一区| 香蕉成人伊视频在线观看| 亚洲成人777| 日韩在线卡一卡二| 日韩和欧美的一区| 久久激情五月激情| 激情综合一区二区三区| 极品少妇xxxx精品少妇| 国产成人综合在线| 成人av免费在线观看| 粉嫩av亚洲一区二区图片| 成人午夜av在线| 91麻豆6部合集magnet| 欧美综合久久久| 精品视频123区在线观看| 欧美高清视频不卡网| 日韩一级完整毛片| 久久久亚洲精品石原莉奈| 精品国免费一区二区三区| 国产日韩亚洲欧美综合| 亚洲日本va午夜在线影院| 亚洲国产视频直播| 免费在线观看精品| 国产成人精品免费一区二区| 99久久99久久精品免费观看| 91搞黄在线观看| 91精品国产综合久久精品性色| 日韩欧美久久久| 欧美激情自拍偷拍| 亚洲国产精品天堂| 久久精品国产秦先生| eeuss国产一区二区三区| 欧美综合一区二区三区| 精品99999| 亚洲日穴在线视频| 日本美女一区二区| 国产69精品久久99不卡| 欧美午夜一区二区三区免费大片| 日韩视频123| 国产精品久久久久一区| 视频在线观看91| 国产91对白在线观看九色| 欧美色区777第一页| 精品国产污网站| 一区二区三区不卡视频在线观看| 蜜桃视频在线观看一区二区| www.亚洲激情.com| 日韩一区二区三区视频| 亚洲视频免费在线观看| 久久电影网电视剧免费观看| 91日韩一区二区三区| 精品日韩av一区二区| 亚洲激情男女视频| 国产成人av资源| 欧美一级黄色录像| 亚洲欧美日韩一区| 国产在线精品一区二区三区不卡| 欧美在线播放高清精品| 国产午夜亚洲精品午夜鲁丝片| 午夜精品久久久久久久| 成人av在线资源网| 日韩精品一区二区三区视频在线观看 | 欧美性做爰猛烈叫床潮| 欧美经典一区二区三区| 五月婷婷欧美视频| 99久久er热在这里只有精品66| 欧美精品一区二区三区四区| 亚洲精品国产无套在线观| 国产精品羞羞答答xxdd| 欧美电影免费观看高清完整版在线| 亚洲精品国产精华液| 不卡区在线中文字幕| 久久久久国产精品麻豆| 捆绑变态av一区二区三区| 欧美精品在欧美一区二区少妇| 亚洲乱码一区二区三区在线观看| 国产精品一区二区不卡| 精品免费视频.| 久久精品久久精品| 日韩一区二区精品在线观看| 日韩国产欧美一区二区三区| 欧美日韩专区在线| 亚洲综合在线第一页| 色婷婷久久久综合中文字幕| 亚洲视频一区二区免费在线观看| 不卡一区在线观看| 欧美激情一区不卡| 福利电影一区二区| 国产女主播一区| av成人老司机| 亚洲精品高清在线观看| 在线观看亚洲a| 日日摸夜夜添夜夜添亚洲女人| 欧美久久久一区|