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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? softfloat.c

?? <Floating Point Unit Core> fpupack.vhd pre_norm_addsub.vhd addsub_28.vhd post_norm_addsub.
?? C
?? 第 1 頁 / 共 5 頁
字號:

    if ( a == 0 ) return 0;
    zSign = ( a < 0 );
    absA = zSign ? - a : a;
    shiftCount = countLeadingZeros32( absA ) + 21;
    zSig = absA;
    return packFloat64( zSign, 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 conversion
| is performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic.
*----------------------------------------------------------------------------*/

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

#ifdef FLOAT128

/*----------------------------------------------------------------------------
| Returns the result of converting the 32-bit two's complement integer `a' to
| the quadruple-precision floating-point format.  The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/

float128 int32_to_float128( int32 a )
{
    flag zSign;
    uint32 absA;
    int8 shiftCount;
    bits64 zSig0;

    if ( a == 0 ) return packFloat128( 0, 0, 0, 0 );
    zSign = ( a < 0 );
    absA = zSign ? - a : a;
    shiftCount = countLeadingZeros32( absA ) + 17;
    zSig0 = absA;
    return packFloat128( zSign, 0x402E - shiftCount, zSig0<<shiftCount, 0 );

}

#endif

/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the single-precision floating-point format.  The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/

float32 int64_to_float32( int64 a )
{
    flag zSign;
    uint64 absA;
    int8 shiftCount;
    bits32 zSig;

    if ( a == 0 ) return 0;
    zSign = ( a < 0 );
    absA = zSign ? - a : a;
    shiftCount = countLeadingZeros64( absA ) - 40;
    if ( 0 <= shiftCount ) {
        return packFloat32( zSign, 0x95 - shiftCount, absA<<shiftCount );
    }
    else {
        shiftCount += 7;
        if ( shiftCount < 0 ) {
            shift64RightJamming( absA, - shiftCount, &absA );
        }
        else {
            absA <<= shiftCount;
        }
        return roundAndPackFloat32( zSign, 0x9C - shiftCount, absA );
    }

}

/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the double-precision floating-point format.  The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/

float64 int64_to_float64( int64 a )
{
    flag zSign;

    if ( a == 0 ) return 0;
    if ( a == (sbits64) LIT64( 0x8000000000000000 ) ) {
        return packFloat64( 1, 0x43E, 0 );
    }
    zSign = ( a < 0 );
    return normalizeRoundAndPackFloat64( zSign, 0x43C, zSign ? - a : a );

}

#ifdef FLOATX80

/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a'
| to the extended double-precision floating-point format.  The conversion
| is performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic.
*----------------------------------------------------------------------------*/

floatx80 int64_to_floatx80( int64 a )
{
    flag zSign;
    uint64 absA;
    int8 shiftCount;

    if ( a == 0 ) return packFloatx80( 0, 0, 0 );
    zSign = ( a < 0 );
    absA = zSign ? - a : a;
    shiftCount = countLeadingZeros64( absA );
    return packFloatx80( zSign, 0x403E - shiftCount, absA<<shiftCount );

}

#endif

#ifdef FLOAT128

/*----------------------------------------------------------------------------
| Returns the result of converting the 64-bit two's complement integer `a' to
| the quadruple-precision floating-point format.  The conversion is performed
| according to the IEC/IEEE Standard for Binary Floating-Point Arithmetic.
*----------------------------------------------------------------------------*/

float128 int64_to_float128( int64 a )
{
    flag zSign;
    uint64 absA;
    int8 shiftCount;
    int32 zExp;
    bits64 zSig0, zSig1;

    if ( a == 0 ) return packFloat128( 0, 0, 0, 0 );
    zSign = ( a < 0 );
    absA = zSign ? - a : a;
    shiftCount = countLeadingZeros64( absA ) + 49;
    zExp = 0x406E - shiftCount;
    if ( 64 <= shiftCount ) {
        zSig1 = 0;
        zSig0 = absA;
        shiftCount -= 64;
    }
    else {
        zSig1 = absA;
        zSig0 = 0;
    }
    shortShift128Left( zSig0, zSig1, shiftCount, &zSig0, &zSig1 );
    return packFloat128( zSign, zExp, zSig0, zSig1 );

}

#endif

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point value
| `a' to the 32-bit two's complement integer format.  The conversion is
| performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic---which means in particular that the conversion is rounded
| according to the current rounding mode.  If `a' is a NaN, the largest
| positive integer is returned.  Otherwise, if the conversion overflows, the
| largest integer with the same sign as `a' is returned.
*----------------------------------------------------------------------------*/

int32 float32_to_int32( float32 a )
{
    flag aSign;
    int16 aExp, shiftCount;
    bits32 aSig;
    bits64 aSig64;

    aSig = extractFloat32Frac( a );
    aExp = extractFloat32Exp( a );
    aSign = extractFloat32Sign( a );
    if ( ( aExp == 0xFF ) && aSig ) aSign = 0;
    if ( aExp ) aSig |= 0x00800000;
    shiftCount = 0xAF - aExp;
    aSig64 = aSig;
    aSig64 <<= 32;
    if ( 0 < shiftCount ) shift64RightJamming( aSig64, shiftCount, &aSig64 );
    return roundAndPackInt32( aSign, aSig64 );

}

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point value
| `a' to the 32-bit two's complement integer format.  The conversion is
| performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic, except that the conversion is always rounded toward zero.
| If `a' is a NaN, the largest positive integer is returned.  Otherwise, if
| the conversion overflows, the largest integer with the same sign as `a' is
| returned.
*----------------------------------------------------------------------------*/

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 ) {
            float_raise( float_flag_invalid );
            if ( ! aSign || ( ( aExp == 0xFF ) && aSig ) ) return 0x7FFFFFFF;
        }
        return (sbits32) 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;
    }
    if ( aSign ) z = - z;
    return z;

}

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point value
| `a' to the 64-bit two's complement integer format.  The conversion is
| performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic---which means in particular that the conversion is rounded
| according to the current rounding mode.  If `a' is a NaN, the largest
| positive integer is returned.  Otherwise, if the conversion overflows, the
| largest integer with the same sign as `a' is returned.
*----------------------------------------------------------------------------*/

int64 float32_to_int64( float32 a )
{
    flag aSign;
    int16 aExp, shiftCount;
    bits32 aSig;
    bits64 aSig64, aSigExtra;

    aSig = extractFloat32Frac( a );
    aExp = extractFloat32Exp( a );
    aSign = extractFloat32Sign( a );
    shiftCount = 0xBE - aExp;
    if ( shiftCount < 0 ) {
        float_raise( float_flag_invalid );
        if ( ! aSign || ( ( aExp == 0xFF ) && aSig ) ) {
            return LIT64( 0x7FFFFFFFFFFFFFFF );
        }
        return (sbits64) LIT64( 0x8000000000000000 );
    }
    if ( aExp ) aSig |= 0x00800000;
    aSig64 = aSig;
    aSig64 <<= 40;
    shift64ExtraRightJamming( aSig64, 0, shiftCount, &aSig64, &aSigExtra );
    return roundAndPackInt64( aSign, aSig64, aSigExtra );

}

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point value
| `a' to the 64-bit two's complement integer format.  The conversion is
| performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic, except that the conversion is always rounded toward zero.  If
| `a' is a NaN, the largest positive integer is returned.  Otherwise, if the
| conversion overflows, the largest integer with the same sign as `a' is
| returned.
*----------------------------------------------------------------------------*/

int64 float32_to_int64_round_to_zero( float32 a )
{
    flag aSign;
    int16 aExp, shiftCount;
    bits32 aSig;
    bits64 aSig64;
    int64 z;

    aSig = extractFloat32Frac( a );
    aExp = extractFloat32Exp( a );
    aSign = extractFloat32Sign( a );
    shiftCount = aExp - 0xBE;
    if ( 0 <= shiftCount ) {
        if ( a != 0xDF000000 ) {
            float_raise( float_flag_invalid );
            if ( ! aSign || ( ( aExp == 0xFF ) && aSig ) ) {
                return LIT64( 0x7FFFFFFFFFFFFFFF );
            }
        }
        return (sbits64) LIT64( 0x8000000000000000 );
    }
    else if ( aExp <= 0x7E ) {
        if ( aExp | aSig ) float_exception_flags |= float_flag_inexact;
        return 0;
    }
    aSig64 = aSig | 0x00800000;
    aSig64 <<= 40;
    z = aSig64>>( - shiftCount );
    if ( (bits64) ( aSig64<<( shiftCount & 63 ) ) ) {
        float_exception_flags |= float_flag_inexact;
    }
    if ( aSign ) z = - z;
    return z;

}

/*----------------------------------------------------------------------------
| Returns the result of converting the single-precision floating-point value
| `a' to the double-precision floating-point format.  The conversion is
| performed according to the IEC/IEEE Standard for Binary Floating-Point
| Arithmetic.
*----------------------------------------------------------------------------*/

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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲桃色在线一区| 色综合天天综合| 日韩精品专区在线| 久久精品国产99久久6| 欧美成人免费网站| 国产精品白丝av| 国产精品国产三级国产普通话99| 波多野结衣中文字幕一区二区三区| 国产精品第五页| 一本色道久久综合精品竹菊| 亚洲一区国产视频| 91精品国产乱码久久蜜臀| 久久精品国产亚洲一区二区三区| 久久免费看少妇高潮| fc2成人免费人成在线观看播放| 亚洲婷婷综合久久一本伊一区| 欧美做爰猛烈大尺度电影无法无天| 午夜不卡av免费| 久久精品在这里| 日本高清视频一区二区| 免费人成精品欧美精品| 亚洲国产高清aⅴ视频| 欧美三区免费完整视频在线观看| 奇米色一区二区| 国产精品美女久久久久久久久 | eeuss鲁一区二区三区| 亚洲日本在线天堂| 欧美一区二区三区影视| 国产精品一级黄| 亚洲一区二区三区免费视频| 亚洲精品在线免费观看视频| 一本大道久久a久久精二百| 麻豆成人av在线| 成人免费在线播放视频| 在线成人小视频| 不卡电影一区二区三区| 毛片不卡一区二区| 亚洲激情图片qvod| 久久精品欧美一区二区三区麻豆 | 午夜天堂影视香蕉久久| 国产亚洲欧美中文| 欧美日韩一区二区三区不卡| 国产精品亚洲视频| 日本欧美肥老太交大片| 亚洲男同性视频| 久久色在线视频| 91精品一区二区三区久久久久久| 91亚洲精华国产精华精华液| 久久99精品一区二区三区| 亚洲国产婷婷综合在线精品| 国产精品午夜在线| 26uuu另类欧美| 欧美一区二区三区小说| 欧美在线观看视频一区二区三区| 大美女一区二区三区| 久久激情五月婷婷| 日韩国产成人精品| 亚洲高清一区二区三区| 亚洲欧美影音先锋| 欧美激情一二三区| 久久综合久久综合亚洲| 日韩欧美电影在线| 4438亚洲最大| 欧美精选午夜久久久乱码6080| 91麻豆精东视频| 99国产精品久久久| 丁香桃色午夜亚洲一区二区三区| 久久99热这里只有精品| 日产国产高清一区二区三区| 亚洲午夜在线观看视频在线| 一区二区三区在线观看国产| 最新热久久免费视频| 国产精品女主播av| 中文字幕一区二区三区精华液| 国产午夜精品一区二区三区嫩草 | 国产精品萝li| 欧美高清在线一区| 国产日韩欧美一区二区三区乱码 | 欧美一区二区观看视频| 欧美精品日韩精品| 欧美肥大bbwbbw高潮| 欧美日韩亚洲高清一区二区| 欧美色男人天堂| 欧美精品日韩综合在线| 337p亚洲精品色噜噜| 欧美一区二区三区精品| 欧美电影免费观看完整版| 精品国偷自产国产一区| 久久免费午夜影院| 久久精品视频在线免费观看| 国产无一区二区| 综合在线观看色| 亚洲国产精品久久久久婷婷884| 亚洲午夜激情av| 日韩高清在线不卡| 国产一区 二区| 成人免费视频一区| 99re这里只有精品视频首页| 色噜噜狠狠色综合中国| 欧美日韩视频在线一区二区| 欧美一区午夜视频在线观看 | 日本一区二区免费在线观看视频| 日本一区二区三区在线观看| 中文字幕佐山爱一区二区免费| 亚洲人成网站影音先锋播放| 亚洲一区二区三区自拍| 美女视频一区二区三区| 成人综合在线视频| 在线观看一区二区精品视频| 日韩视频免费观看高清完整版在线观看| 精品日韩一区二区三区免费视频| 久久伊人中文字幕| 亚洲美女视频在线观看| 日本亚洲免费观看| 成人av中文字幕| 3d动漫精品啪啪1区2区免费 | 精品一区二区三区香蕉蜜桃| 国产精品一区二区无线| 色婷婷久久久久swag精品 | 国产人妖乱国产精品人妖| 国产欧美日韩视频在线观看| 亚洲乱码一区二区三区在线观看| 日产欧产美韩系列久久99| 成人中文字幕合集| 在线精品视频一区二区| 欧美一区二区三区在线观看| 国产精品理论片| 免费观看一级特黄欧美大片| 成人亚洲一区二区一| 91精品国产日韩91久久久久久| 国产精品午夜免费| 蜜桃视频在线一区| 色香蕉成人二区免费| 久久这里都是精品| 亚洲小少妇裸体bbw| 国产精品一线二线三线精华| 欧美日韩综合在线| 亚洲国产高清aⅴ视频| 蜜桃av一区二区三区| 欧美视频在线一区二区三区| 国产欧美日韩激情| 免费黄网站欧美| 欧美三级在线视频| 亚洲同性gay激情无套| 国产大片一区二区| 88在线观看91蜜桃国自产| 亚洲天堂免费看| 国产精华液一区二区三区| 欧美一区二区成人| 亚洲一二三四在线| av不卡在线播放| 国产日本欧美一区二区| 久草这里只有精品视频| 日本精品视频一区二区| 国产精品美女久久久久久| 国产一区二区在线电影| 欧美一区二区视频观看视频| 亚洲成人福利片| 在线视频一区二区三| 亚洲欧美日韩系列| 99国产精品久久久久久久久久| 国产欧美一区二区精品性色超碰 | 久久国产乱子精品免费女| 欧美日韩在线播放一区| 一区二区三区精品| www.久久精品| 中文字幕在线观看一区| 成人av免费在线| 综合精品久久久| 91在线国产观看| 亚洲精品中文字幕在线观看| 91亚洲午夜精品久久久久久| 亚洲男同1069视频| 91高清视频免费看| 亚洲国产综合色| 欧美老人xxxx18| 免费成人美女在线观看| 精品日韩在线观看| 国产精品亚洲人在线观看| 中文字幕+乱码+中文字幕一区| 风间由美性色一区二区三区| 国产精品第五页| 欧美午夜宅男影院| 免费高清在线一区| 久久久久久免费毛片精品| 成人性生交大片免费看中文网站| 中文字幕va一区二区三区| 色综合久久天天| 婷婷综合另类小说色区| 精品蜜桃在线看| 成人激情校园春色| 亚洲综合色在线| 欧美成人欧美edvon| 成人av网站免费| 亚洲国产cao| 337p日本欧洲亚洲大胆精品| 99精品一区二区三区| 天天综合网 天天综合色| 国产精品视频九色porn| 91亚洲精品一区二区乱码|