บทความนี้สอนเขียนโปรแกรมแปลงเลขฐาน 16 เป็นฐาน 10 ภาษาซี ด้วยคำสั่ง strtol เราจะได้เรียนรู้วิธีการเขียนโค้ดเพื่อสร้างโปรแกรมดังกล่าว พร้อมแสดงผลลัพธ์ และคำอธิบายคำสั่งต่างๆ ในโค้ด มีรายละเอียดดังนี้
ตัวอย่าง แปลงเลขฐาน 16 เป็นฐาน 10 ภาษาซี
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex[20] = "7CE";
long int decimal;
decimal = strtol(hex, NULL, 16);
printf("hexadecimal value is: %s\n", hex);
printf("decimal value is: %d\n", decimal);
return 0;
}
ผลลัพธ์
hexadecimal value is: 7CE
decimal value is: 1998
จากตัวอย่างโปรแกรมอธิบายได้ดังนี้
1. include header file stdio.h และ stdlib.h เพื่อเรียกใช้ฟังก์ชันที่เกี่ยวข้อง
2. สร้างตัวแปร hex เก็บเลขฐาน 16 เท่ากับ “7CE” ชนิด char ขนาด 20
3. สร้างตัวแปร decimal เก็บเลขฐาน 10 ชนิด int
4. ใช้คำสั่ง strtol แปลงเลขฐาน 16 เป็นฐาน 10
5. แสดงค่าตัวแปร hex ด้วย %s และตัวแปร decimal ด้วย %d ร่วมกับ printf
1. ตัวแปร หรือค่าของเลขฐาน 16 กำหนดเป็นตัวแปร hex
2. ตำแหน่งของข้อมูลที่ไม่สามารถแปลงเป็นเลขฐาน 10 ได้ ในที่นี้ไม่มีจึงกำหนดเป็น null
3. ฐานของเลขต้นทางที่ต้องการแปลงในตัวอย่าง คือ 16