เราใช้ตัวแปรจำนวนเต็มและอักขระหลายครั้งในโปรแกรมของเรา เราจะมาดูกันว่าพวกมันถูกเก็บไว้ในหน่วยความจำอย่างไร
ใน C ค่าอักขระจะถูกเก็บไว้เป็นจำนวนเต็มด้วย ในโค้ดต่อไปนี้ เราจะใส่ 270 ลงในข้อมูลประเภทอักขระ ดังนั้นเลขฐานสองที่เทียบเท่า 270 คือ 100001110 แต่รับ 8 บิตแรกจากขวาเท่านั้น ดังนั้นผลลัพธ์จะเป็น (000011110) นั่นคือ 14 จากนั้นเก็บค่าไว้ในตัวแปร a นอกจากนี้ยังให้คำเตือนสำหรับน้ำล้น
ในตัวแปร y ถัดไป เรากำลังพยายามเก็บค่าลบว่า -130 จำนวนลบจะถูกเก็บไว้เป็นวิธีการเสริมของ 2 ดังนั้นเลขฐานสองของ 130 คือ (10000010) ค่าที่เสริมกันของ 2 คือ 01111101 + 1 =01111110 นอกจากนี้ยังใช้ 8 บิตที่ถูกต้องที่สุดอีกด้วย ดังนั้นผลลัพธ์จะเป็น (01111110) =126
ตัวอย่าง
#include <stdio.h> int main() { char x = 270; char y = -130; printf("The value of x is: %d\n", x); printf("The value of y is: %d", y); }
ผลลัพธ์
The value of x is: 14 The value of y is: 126