วิธีการจัดรูปแบบ unsigned long long int
ด้วย printf
ใน C อย่างถูกต้อง
เมื่อเขียนโปรแกรมใน C การเข้าใจประเภทข้อมูลและการจัดรูปแบบที่สอดคล้องกันในฟังก์ชันอย่าง printf
เป็นสิ่งสำคัญสำหรับผลลัพธ์ที่ถูกต้อง หากคุณเคยรู้สึกสับสนเกี่ยวกับการพิมพ์ unsigned long long int
คุณไม่ได้อยู่คนเดียว มาดำดิ่งสู่ปัญหานี้ที่พบได้บ่อยและเรียนรู้วิธีการแก้ไขอย่างมีประสิทธิภาพ
ความเข้าใจเกี่ยวกับ Unsigned Long Long Int
unsigned long long int
เป็นประเภทข้อมูลใน C ที่สามารถจัดเก็บจำนวนเต็มที่มีขนาดใหญ่ ทำให้มีช่วงที่กว้างกว่าจำนวนเต็มมาตรฐาน มีความกว้างขั้นต่ำที่รับประกันได้ 64 บิต เมื่อใช้ printf
เพื่อแสดงประเภทนี้ การเลือกตัวระบุรูปแบบที่ถูกต้องเป็นสิ่งสำคัญ มิฉะนั้นคุณอาจพบกับผลลัพธ์ที่ไม่คาดคิด เช่น ข้อมูลที่ไม่ถูกต้องหรือคำเตือน
ปัญหา
พิจารณาตัวอย่างโค้ดต่อไปนี้ที่มุ่งหมายจะพิมพ์ unsigned long long int
:
#include <stdio.h>
int main() {
unsigned long long int num = 285212672; // FYI: fits in 29 bits
int normalInt = 5;
printf("หมายเลขของฉันกว้าง %d ไบต์และค่าของมันคือ %ul. หมายเลขปกติคือ %d.\n", sizeof(num), num, normalInt);
return 0;
}
ผลลัพธ์อาจทำให้คุณประหลาดใจ:
หมายเลขของฉันกว้าง 8 ไบต์และค่าของมันคือ 285212672l. หมายเลขปกติคือ 0.
ที่นี่ ผลลัพธ์สำหรับ num
ดูไม่ถูกต้อง เพราะตัวระบุรูปแบบที่ใช้ใน printf
ไม่ตรงกับประเภทข้อมูล
วิธีการแก้ปัญหา
เพื่อจัดรูปแบบ unsigned long long int
อย่างถูกต้องโดยใช้ printf
คุณต้องใช้ตัวระบุรูปแบบที่ถูกต้อง: llu
ด้านล่างนี้คือวิธีการทำขั้นตอนทีละขั้นตอน:
คู่มือการจัดรูปแบบทีละขั้นตอน
-
ใช้ตัวระบุที่ถูกต้อง: แทนที่จะใช้
%ul
ซึ่งไม่เหมาะสม ให้ใช้%llu
สิ่งนี้บอกคอมไพเลอร์ว่าคุณกำลังจัดการกับประเภทunsigned long long int
-
อัปเดตคำสั่งพิมพ์ของคุณ: ปรับฟังก์ชัน
printf
ของคุณให้ดูเหมือนดังนี้:printf("หมายเลขของฉันกว้าง %d ไบต์และค่าของมันคือ %llu. หมายเลขปกติคือ %d.\n", sizeof(num), num, normalInt);
-
ตัวอย่างที่สมบูรณ์: นี่คือโค้ดที่ถูกแก้ไขแล้วแบบเต็ม:
#include <stdio.h> int main() { unsigned long long int num = 285212672; // FYI: fits in 29 bits int normalInt = 5; printf("หมายเลขของฉันกว้าง %d ไบต์และค่าของมันคือ %llu. หมายเลขปกติคือ %d.\n", sizeof(num), num, normalInt); return 0; }
-
ผลลัพธ์ที่คาดหวัง: ตอนนี้ หากคุณเรียกใช้โปรแกรมของคุณอีกครั้ง คุณควรเห็นผลลัพธ์ที่ถูกต้อง:
หมายเลขของฉันกว้าง 8 ไบต์และค่าของมันคือ 285212672. หมายเลขปกติคือ 5.
ข้อสรุปที่สำคัญ
- เสมอให้ตรงกับประเภทข้อมูลกับตัวระบุรูปแบบที่เหมาะสมใน
printf
. - สำหรับ
unsigned long long int
, ใช้%llu
ในสตริงรูปแบบของคุณ. - การวางแผนโค้ดของคุณเพื่อรวมประเภทข้อมูลที่เหมาะสมสามารถช่วยป้องกันข้อผิดพลาดในระหว่างการทำงานและผลลัพธ์ที่ไม่คาดคิด.
บทสรุป
การจัดการประเภทข้อมูลให้ถูกต้องใน C เป็นสิ่งจำเป็นสำหรับการเขียนโปรแกรมที่มีประสิทธิภาพ โดยการใช้ตัวระบุรูปแบบที่ถูกต้อง %llu
สำหรับ unsigned long long int
คุณสามารถมั่นใจได้ว่าผลลัพธ์ของคุณจะถูกต้องและชัดเจน จำรูปแบบนี้ไว้เมื่อคุณทำงานกับจำนวนเต็มที่ใหญ่ขึ้นและสนุกกับการเขียนโปรแกรมใน C!