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

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

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

+1 امتیاز
627 نمایش

یه کد 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