اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

کد تبدیل عدد اعشاری float به int

+1 امتیاز
1,612 نمایش

یه کد C++ می‌خوام که تبدیل float به int رو انجام بده

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده دوشنبه ۲۱ مرداد ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

کد زیر این کار و انجام می‌ده

int32_t ieee = * reinterpret_cast< int32_t * >( &float_value );
int32_t mantissa = ieee & (1 << 23)-1 | 1 << 23;
int exponent = ( ieee >> 23 & (1 << 8)-1 ) - ( 127 + 23 );
if ( exponent <= -32 ) {
  mantissa = 0;
} else if ( exponent < 0 ) {
  mantissa >>= - exponent;
} else if ( exponent >= 8 ) {
  overflow();
} else {
  mantissa <<= exponent;
}
if ( ieee < 0 ) mantissa = - mantissa;
return mantissa;

که از این آدرس برداشته شده

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده دوشنبه ۲۱ مرداد ۱۳۹۲ توسط prodo