Chuyển số bát phân (cơ số 8, chữ số 0-7) sang thập phân (cơ số 10).
Cách làm: Tách từng chữ số từ phải sang trái (lấy phần dư chia 10), nhân với 8^vị_trí, cộng dồn.
Ví dụ
Input: 451 1 * 8^0 = 1 5 * 8^1 = 40 4 * 8^2 = 256 Total = 297 (Lưu ý: ví dụ gốc có sai tính toán, kết quả đúng là 297)
Thuật toán
Bắt đầu
Bước 1: Hàm convert(int num)
temp = num, val = 0, base = 1
Khi temp > 0:
digit = temp % 10
temp /= 10
val += digit * base
base *= 8
Trả về val
Bước 2: main()
num = 45
In convert(num)
Kết thúc
Ví dụ code
#include <iostream>
using namespace std;
int convert(int num) {
int temp = num, val = 0, base = 1;
while (temp) {
int digit = temp % 10;
temp /= 10;
val += digit * base;
base *= 8;
}
return val;
}
int main() {
int num = 45;
cout << "Gia tri sau chuyen doi: " << convert(num);
return 0;
}
Kết quả
Gia tri sau chuyen doi: 37