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

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

حالت‌های تبدیل int به float

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

دو نوع می‌شه int رو به float تبدیل کرد.
یکی این که دقیقاً الگوی بیتی رو بدون در نظر گرفته مقدار تبدیل کنیم. در این صورت مثلاً یه مقدار از int تبدیل به مقدار بی‌نهایت float می‌شه.

نوع دیگه این هست که مقادیر رو در نظر بگیریم و کاری به الگوی بیتی نداشته باشیم یعنی به صورت ریاضی عمل کنیم.

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

1 پاسخ

0 امتیاز

با فرض این که sizeof(int)==sizeof(float) می‌شه به صورت‌های زیر عمل کرد

int x = ...;
float f;
f = *(reinterpret_cast<float*>(&x));

یا

int x = ...;
float f;
*(int *)&f = x;

یا

memcpy(&f, &x, sizeof(int));

این روش‌ها بیت‌های عدد رو تغییر نمی‌ده
توسط روش زیر هم به صورت ریاضی مقدار رو منتقل می‌کنیم

int x = ...;
float f = x;

یا

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