Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ chuyển đổi thập lục phân sang thập phân

Chuyển số thập lục phân (hex) sang thập phân (decimal). Hex cơ số 16 (0-9, A-F), Decimal cơ số 10.

Cách làm: Duyệt từ phải sang trái, lấy giá trị chữ số (0-9 hoặc A-F=10-15), nhân với 16^vị_trí (bắt đầu từ 0), cộng dồn.

Ví dụ

Input: ACD
A(10) * 16^2 = 2560
C(12) * 16^1 = 192
D(13) * 16^0 = 13
Total = 2765

Thuật toán

Bắt đầu
Bước 1: Hàm convert(char num[])
    len = strlen(num), base = 1, temp = 0
    Với i từ len-1 xuống 0:
        Nếu '0' <= num[i] <= '9': temp += (num[i]-48)*base
        Nếu 'A' <= num[i] <= 'F': temp += (num[i]-55)*base
        base *= 16
    Trả về temp
Bước 2: main()
    num = "3F456A"
    Gọi convert(num)
Kết thúc

Ví dụ code

#include <iostream>
#include <string.h>
using namespace std;

int convert(char num[]) {
    int len = strlen(num);
    int base = 1, temp = 0;
    for (int i = len - 1; i >= 0; i--) {
        if (num[i] >= '0' && num[i] <= '9') {
            temp += (num[i] - 48) * base;
            base *= 16;
        } else if (num[i] >= 'A' && num[i] <= 'F') {
            temp += (num[i] - 55) * base;
            base *= 16;
        }
    }
    return temp;
}

int main() {
    char num[] = "3F456A";
    cout << num << " sau chuyen doi thanh thap phan: " << convert(num) << endl;
    return 0;
}

Kết quả

3F456A sau chuyen doi thanh thap phan: 4146538