Nội dung chính
Đề bài
1. Chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số B bất kỳ.
2. Chuyển đổi hệ cơ số B sang hệ cơ số 10 bất kỳ.
Cách chuyển đổi hệ cơ số trong PHP:
- Chuyển đối hệ cơ số 10 sang hệ cơ số B
- Chuyển đối hệ cơ số B sang hệ cơ số 10
Chuyển đối hệ cơ số 10 sang hệ cơ số B
Cách chuyển đổi số nguyên N từ hệ cơ số 10 sang hệ cơ số 2, trong ảnh dưới đây là ví dụ chuyển số 15 và số 6 sang hệ cơ số 2:
- Gán m = 15.
- Put phần dư m chia cho 2 (m % 2) vào stack.
- Gán m = m / 2.
- Nếu m > 0 quay lại bước 2.
- Đảo ngược lại stack ta được số cần tính.
Các hệ số khác chuyển đổi tương tự.
Ví dụ chuyển đối hệ cơ số 10 sang hệ cơ số B
Giả sử hệ cơ số cần chuyển là 2 <= B <= 16. Số đại điện cho hệ cơ số B > 10 là A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.
Chúng ta tạo ra một chương trình như sau để chuyển đổi hệ cơ số trong PHP:
<?php /** * chuyen doi so nguyen n sang he co so b * * @author viettuts.vn * @param n: so nguyen * @param b: he co so * @return string he co so b */ function convertNumber($n, $b) { if ($n < 0 || $b < 2 || $b > 16 ) { return ""; } $result = ""; $m = 0; $remainder = $n; while ($remainder > 0) { if ($b > 10) { $m = $remainder % $b; if ($m >= 10) { $result = $result . chr (55 + $m); } else { $result = $result . $m; } } else { $result = $result . ($remainder % $b); } $remainder = floor($remainder / $b); } return strrev($result); } // ví dụ chuyển đổi số 30 (hệ số 10) sang hệ cơ số 2 và 16 $n = 30; echo ("So " . $n . " trong he co so 2 = " . convertNumber($n, 2) . "<br>"); echo ("So " . $n . " trong he co so 16 = " . convertNumber($n, 16)); // ví dụ chuyển đổi số 15 (hệ số 10) sang hệ cơ số 2 và 16 $n = 15; echo ("So " . $n . " trong he co so 2 = " . convertNumber($n, 2) . "<br>"); echo ("So " . $n . " trong he co so 16 = " . convertNumber($n, 16)); ?>
Kết quả:
So 30 trong he co so 2 = 11110 So 30 trong he co so 16 = 1E So 15 trong he co so 2 = 1111 So 15 trong he co so 16 = F
Trong ví dụ trên:
- Hàm strrev() được sử dụng để đảo ngược chuỗi trong PHP.
- Hàm chr() được sử dụng để chuyển đổi một số nnguyên (ở hệ cơ số 10) thành một ký tự, quy tắc chuyển đổi được định nghĩa trong bảng ASCII. Ví dụ, chr(65) = 'A', chr(66) = 'B', chr(97) = 'a'.
Bạn nên học bảng ASCII, vì nó rất có ích cho công việc của bạn.
Chuyển đối hệ cơ số B sang hệ cơ số 10
Trong ảnh dưới đây là ví dụ về chuyển đổi hệ cơ số 2 sang hệ cơ số 10.
Các hệ cơ số khác tương tự.