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

การแปลงทศนิยมฐานสิบหกเป็นค่าจำนวนเต็มโดยใช้ภาษาซี


ปัญหา

วิธีการแปลงค่าฐานสิบหกเป็นค่าจำนวนเต็มโดยใช้ภาษาการเขียนโปรแกรม C?

อธิบายแนวคิด

วิธีแก้ปัญหา

ค่าเลขฐานสิบหกแสดงเป็น 16 สัญลักษณ์ 1 ถึง 9 &A ถึง F ในที่นี้ ค่าเทียบเท่าทศนิยม A ถึง F คือ 10 ถึง 15

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับแปลงเลขฐานสิบหกเป็นจำนวนเต็มโดยใช้ฟังก์ชัน -

#include#include#includeint hextodc(char *hex){ int y =0; int ธันวา =0; int x, ผม; for(i =strlen(hex) - 1; i>=0; --i)//{ if(hex[i]>='0'&&hex[i]<='9'){ x =hex[i ] - '0'; } อื่น ๆ{ x =hex[i] - 'A' + 10; } dec =dec + x * pow(16 , y);// แปลงค่าเลขฐานสิบหกเป็นค่าจำนวนเต็ม ++ y; } return dec;}int main(){ ถ่านฐานสิบหก[100]; printf("ป้อนเลขฐานสิบหก:"); scanf("%s", เลขฐานสิบหก); printf("\nทศนิยม:%d", hextodc(ฐานสิบหก)); คืนค่า 0;}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

<ก่อน>1. ป้อนเลขฐานสิบหก:ทศนิยม A:10 2. ป้อนเลขฐานสิบหก:A12 ทศนิยม:2578

คำอธิบาย

สแกนอักขระทั้งหมดของ Hex จากขวาไปซ้าย

ให้อักขระที่สแกนเป็น A.

แปลง A เป็นรูปแบบทศนิยมที่เหมาะสมและเก็บไว้ใน x

ธ.ค. =ธ.ค. + x * 16 ปี

y=y + 1.

คืนค่าทศนิยม

เราสามารถสแกนค่าเลขฐานสิบหกจากซ้ายไปขวาได้ แต่เราต้องเริ่มต้น y เป็น y =N – 1 และลดค่า y ในการวนซ้ำแต่ละครั้ง N คือความยาวของเลขฐานสิบหก