در C++
، متاسفانه نوع char
به معنی signed char
یا unsigned char
نیست همیشه و کامپایلر در این مورد تصمیم میگیره.
کد اول تعداد بیتهای ارقام بدون در نظر گرفتن بیت علامت رو در نظر میگیره که در این جا گامپایلر char
رو signed char
در نظر گرفته و بنابراین مقدار ۷ برگردونده.
کد دوم CHAR_BIT
تعداد بیتهای یه بایت در کامپیوتر رو نشون میده که ربطی به علامتدار بودن و نبودن کاراکتر نداره. بنابراین مقدار ۸ رو برگردونده.
میتونیم دو کد زیر رو چاپ کنیم
cout<<numeric_limits<signed char>::digits;
cout<<numeric_limits<unsigned char>::digits;
تا موضوع کاملاً مشخص بشه
هیچ پژوهش انسانی نمیتواند ادعای علمی بودن داشته باشد، مگر اینکه از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)