لماذا تختلف المخرجات عند اضافة العدد 0 على يسار رقم الاسكي ASCII في لغة البرمجة سي

ماسبب اختلاف المخرجات عند اضافة العدد 0 على يسار رقم الاسكي كود ( ASCII )

مثلا رقم ASCII للحرف K = 75

#include <stdio.h>

main()
{
    int var = 75;
    printf("%c", var);
}

عند تنفيذ المثال السابق المخرج يكون الحرف ( K )

ولكن عند اضافة العدد 0 على يسار رقم الاسكي كود

#include <stdio.h>

main()
{
    int var = 075;
    printf("%c", var);
}

نتائج المخرجات الرمز ( = )

ماسبب اختلاف النتائج بالرغم ان العدد 0 لا يؤثر على النتائج عندما يكون يسار الاعداد ؟


كما هو موضح هنا:

ففى لغة C وبعض اللغات الاخرى المشابهة يتم التعامل مع الاعداد العشرية (Decimal) كأعداد ثمانية (octal) اذا سبقها الصفر (0) والمكافئ العشرى للعدد (75) بعد ان اصبح فى النظام الثمانى هو (61)

وهو المكافئ للرمز (=) فى رموز أسكي (ASCII).