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

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

چرا این دو تا کد برای اندازه‌ی کاراکتر با هم فرق دارن؟

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

این دو تا کد باید اندازه‌ی کاراکتر رو به ما بده

cout<<numeric_limits<char>::digits;
cout<<CHAR_BIT;

اما اولی ۷ رو چاپ می‌کنه و دومی ۸. چرا خب؟

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

1 پاسخ

0 امتیاز

در C++، متاسفانه نوع char به معنی signed char یا unsigned char نیست همیشه و کامپایلر در این مورد تصمیم می‌گیره.

کد اول تعداد بیت‌های ارقام بدون در نظر گرفتن بیت علامت رو در نظر می‌گیره که در این جا گامپایلر char رو signed char در نظر گرفته و بنابراین مقدار ۷ برگردونده.

کد دوم CHAR_BIT تعداد بیت‌های یه بایت در کامپیوتر رو نشون می‌ده که ربطی به علامت‌دار بودن و نبودن کاراکتر نداره. بنابراین مقدار ۸ رو برگردونده.

می‌تونیم دو کد زیر رو چاپ کنیم

cout<<numeric_limits<signed char>::digits;
cout<<numeric_limits<unsigned char>::digits;

تا موضوع کاملاً مشخص بشه

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