[C/C++] Hiển thị số hệ 2, hệ 8, hệ 16 của số thập phân
Để hiển thị số hệ 10 sang các hệ khác, thông thường chúng ta nghĩ đến
cách đổi chúng ra các hệ kia bằng thuật toán. Nếu muốn vậy bạn có thể
tìm thêm trên Google đã có nhiều bài viết về các thuật toán đó rồi, ở
đây mình nêu một số cách mà chúng ta không cần dùng thuật toán mà có thể
hiển thị ngay.
VD: Nhập 1 số hệ 10 rồi xuất ra hệ 16.
Vậy không dùng thuật toán thì làm thế nào? Đơn giản như sau:
Thông tin thêm:
Để biểu diễn một số thuộc kiểu gì đó dưới dạng một số hệ nào đó: ví dụ bạn nhập vào một số nguyên giờ muốn biểu diễn nó lên màn hình.
– Định dạng hệ 10 sử dụng %d
– Định dạng hệ 8 sử dụng %o
– Định dạng hệ 16 sử dụng %x (hoặc X để viết hoa các chữ cái)
Để ý, chúng ta có thể nhập được số hệ 16 hay hệ 8 và in ra các hệ 8, 10, 16 mà bạn muốn.
VD nhập vào số hệ 16 in ra số hệ 8, hệ 10.
VD: Nhập 1 số hệ 10 rồi xuất ra hệ 16.
#includeNếu bạn để ý kỹ thì trong code trên chúng ta vẫn sử dụng thuật toán chia cho 16 dùng đệ quy. Cách này cũng áp dụng tốt cho hệ 2 và hệ 8. Ngoài ra chúng ta có thể sử dụng hàm ltoa để chuyển đổi (các bạn tự search).#include void Hex(int n) { if (n < 16) { printf("%c","0123456789ABCDEF"[n]); // hien thi ky tu thu n trong chuoi return; } else Hex(n / 16); printf("%c","0123456789ABCDEF"[n % 16]); } int main() { int n; printf("Enter your number: "); scanf("%d", &n); printf("Number in hex:"); Hex(n); return 0; }
Vậy không dùng thuật toán thì làm thế nào? Đơn giản như sau:
#includeThật đơn giản và ngắn gọn phải không? :D.#include int main() { int n; printf("Enter your number: "); scanf("%d", &n); printf("Number in hex: %X", n); // in ra so Hex bang dinh dang %X return 0; }
Thông tin thêm:
Để biểu diễn một số thuộc kiểu gì đó dưới dạng một số hệ nào đó: ví dụ bạn nhập vào một số nguyên giờ muốn biểu diễn nó lên màn hình.
– Định dạng hệ 10 sử dụng %d
– Định dạng hệ 8 sử dụng %o
– Định dạng hệ 16 sử dụng %x (hoặc X để viết hoa các chữ cái)
Để ý, chúng ta có thể nhập được số hệ 16 hay hệ 8 và in ra các hệ 8, 10, 16 mà bạn muốn.
VD nhập vào số hệ 16 in ra số hệ 8, hệ 10.
#includeKQ:#include int main() { int n; printf("Enter your number in Hex: "); scanf("%x", &n); printf("Number in Oct: %on", n); printf("Number in Dec: %dn", n); return 0; }
Enter your number in Hex: D2F
Number in Oct: 6457
Number in Dec: 3375







0 nhận xét:
Đăng nhận xét