Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การจัดเก็บค่าจำนวนเต็มและอักขระใน C


เราใช้ตัวแปรจำนวนเต็มและอักขระหลายครั้งในโปรแกรมของเรา เราจะมาดูกันว่าพวกมันถูกเก็บไว้ในหน่วยความจำอย่างไร

ใน 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