আমরা প্রোগ্রামে ইন্টিজার ও ক্যারেক্টার ভেরিয়েবল বারবার ব্যবহার করি। এখানে দেখব সেগুলো মেমোরিতে কীভাবে সংরক্ষিত হয়।
সি-তে ক্যারেক্টার ভ্যালুও ইন্টিজার হিসেবে সংরক্ষিত হয়। নিচের কোডে ২৭০ একটি ক্যারেক্টার টাইপ ডেটাতে রাখা হয়েছে। ২৭০-এর বাইনারি সমতুল্য 100001110, কিন্তু ডান পাশ থেকে শুধু প্রথম ৮-বিট নেওয়া হয়। তাই ফলাফল (00001110) অর্থাৎ ১৪। ভেরিয়েবল a-তে মানটি স্টোর হয়। এটি ওভারফ্লো ওয়ার্নিংও দেয়।
পরবর্তী ভেরিয়েবল y-তে নেগেটিভ নম্বর -১৩০ রাখা হচ্ছে। নেগেটিভ নম্বর ২'স কমপ্লিমেন্ট মেথডে সংরক্ষিত হয়। ১৩০-এর বাইনারি (10000010)। ২'স কমপ্লিমেন্ট: 01111101 + 1 = 01111110। এখানেও ডান পাশের ৮-বিট নেওয়া হয়। ফলাফল (01111110) = ১২৬।
উদাহরণ কোড
#include <stdio.h>
int main() {
char x = 270;
char y = -130;
printf("x-এর মান: %d\n", x);
printf("y-এর মান: %d", y);
}
আউটপুট
x-এর মান: 14 y-এর মান: 126