Devdit
 

แปลงเลขฐาน 16 เป็นฐาน 10 ภาษาซี

1.3K

บทความนี้สอนเขียนโปรแกรมแปลงเลขฐาน 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

 

สรุป การแปลงเลขฐาน 16 เป็นฐาน 10 ภาษาซี แนะนำให้ใช้คำสั่ง strtol กำหนดค่าพารามิเตอร์ 3 ตัวคือ 

1. ตัวแปร หรือค่าของเลขฐาน 16 กำหนดเป็นตัวแปร hex

2. ตำแหน่งของข้อมูลที่ไม่สามารถแปลงเป็นเลขฐาน 10 ได้ ในที่นี้ไม่มีจึงกำหนดเป็น null

3. ฐานของเลขต้นทางที่ต้องการแปลงในตัวอย่าง คือ 16

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ