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

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

تشخیص نوع یک مقدار صحیح (literal)

0 امتیاز
97 نمایش

وقتی یه مقدار صحیح رو در برنامه وارد می‌کنیم (بدون متغیر، فقط مقدار یا همون literal) نوعی که کامپایلر براش در نظر می‌گیره چیه؟
مثلاً

cout<<345;

این 345 به عنوان علامت‌دار در نظر گرفته می‌شه یا بدون علامت؟ int یا short int یا long int؟

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

1 پاسخ

0 امتیاز

چند تا قانون براش وجود داره که وابسته به پسوند (u یا l) و پیشوند (0 یا 0X) است.

۱- حالت بدون پسوند
در این صورت
الف) اگر عدد در مبنای ده باشد (بدون پیشوند) و فضای int برای آن کافی باشد نوع آن int خواهد بود. در صورتی که فضای int کافی نباشد و فضای long int کافی باشد، نوع آن long int خواهد بود. در صورتی که فضای long int هم کافی نباشد، قانونی برای آن وجود ندارد.
ب) اگر عدد در مبنای ۸ یا ۱۶ باشد، به ترتیب امکان قرار گرفتن در انواع ‍int سپس ‍unsigned int سپس long int سپس unsigned long int بررسی می‌شود.

۲- حالت با پسوند
الف) در صورتی که تنها پسوند u یا U استفاده شده باشد، به ترتیب امکان unsigned int و unsigned long int بررسی می‌شود.
ب) در صورتی که تنها پسوند l یا L استفاده شده باشد، به ترتیب امکان قرار گرفتن در long int و ‍unsigned long int بررسی می‌شود.
ج) در صورتی که هر دو پسوند u و l (به صورت‌های مختلف مانند uL، UL و ...) استفاده شده باشد، نوع آن ‍unsigned long int خواهد بود.

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