Computer >> Máy Tính >  >> Lập trình >> lập trình C

Chuyển đổi hệ thập phân Hex thành giá trị số nguyên bằng ngôn ngữ C

Vấn đề

Làm cách nào để chuyển đổi giá trị thập lục phân thành giá trị số nguyên bằng ngôn ngữ lập trình C?

Giải thích khái niệm.

Giải pháp

Các giá trị thập lục phân biểu thị bằng 16 ký hiệu từ 1 đến 9 &A đến F. Ở đây, giá trị thập phân từ A đến F tương đương là 10 đến 15.

Ví dụ

Sau đây là chương trình C để chuyển đổi hệ thập lục phân thành số nguyên bằng cách sử dụng các hàm -

#include<stdio.h>
#include<string.h>
#include<math.h>
int hextodc(char *hex){
   int y = 0;
   int dec = 0;
   int x, i;
   for(i = strlen(hex) - 1 ; i >= 0 ; --i)//{
      if(hex[i]>='0'&&hex[i]<='9'){
         x = hex[i] - '0';
      }
      else{
         x = hex[i] - 'A' + 10;
      }
      dec = dec + x * pow(16 , y);// converting hexadecimal to integer value ++y;
   }
   return dec;
}
int main(){
   char hex[100];
   printf("Enter Hexadecimal: ");
   scanf("%s", hex);
   printf("\nDecimal: %d", hextodc(hex));
   return 0;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

1. Enter Hexadecimal: A
   Decimal: 10
   2. Enter Hexadecimal: A12
      Decimal: 2578

Giải thích

Quét tất cả các ký tự của Hex từ phải sang trái

Đặt ký tự được quét là A.

Chuyển A sang dạng thập phân thích hợp và lưu trữ nó trong x.

dec =dec + x * 16y

y =y + 1.

Trả về số thập phân.

Chúng ta cũng có thể quét giá trị Hệ thập lục phân từ Trái sang Phải nhưng, chúng ta phải khởi tạo y là y =N - 1 và giảm y trên mỗi lần lặp. N là độ dài của Hệ thập lục phân.