السلام عليكم
جميعنا نعلم أن المتغيرات التي من نوع char تأخذ -128 كقيمة دنيا و 127 كقيمة عظمى و هي تمثل حروف آسكي لأن كل حرف من هذه الحروف يقابله كود معين هو مايميزه عن بقية الحروف و الأرقام و الرموز.
حسب ما أعرف فإن ترميز الآسكي يبدأ من صفر و ينتهي بـ 255 مما يعني أنه يوجد 256 حرف في الجدول, ولكن كيف تكون المتغرات الحرفية تمثل جدول آسكي و مع ذلك تأخذ أعداد سالبة !
انظر الكود: (المترجم لم يعترض و قد ظهر لي رمز غريب جدا)
#include<stdio.h>
#include<stdlib.h>
int main()
{
char ch=-65;
printf("%c\n",ch);
system("pause");
return 0;
}-----------------------------------
سؤال مستقل:
عندما نريد أن نُسند قيمة من النظام الثماني إلى متغير ما فإننا نكتب العدد 0 أمام القيمة هكذا:
short num=07361;//num=3825 in decimal
و إذا أردنا أن نُسند قيمة من النظام السداسي عشر إلى متغير ما فإننا نكتب 0x أمام القيمة هكذا:
long num=0xA22FBD6;//num=170064854 in decimal
و لكن ماذا لو أردنا إسناد قيمة من النظام الثنائي .. كيف نُسندها !؟
-----------------------------------
