Hỏi Đáp

Tìm Hiểu Hệ Cơ Số 16 – Hexadecimal — STDIO

Hệ cơ số 16 là gì

Hệ thập lục phân (hay còn gọi là hệ thập lục phân) là một khái niệm quen thuộc và không kém phần quan trọng đối với mọi lập trình viên. Trong bài viết này, tác giả sẽ cùng bạn hiểu về hệ cơ số 16 và cách chuyển đổi sang hệ cơ số này từ các hệ cơ số khác và cài đặt chúng bằng ngôn ngữ lập trình.

Lịch sử ra đời

Hệ thống thập lục phân hiện tại đã được giới thiệu vào thế giới máy tính vào năm 1963 bởi công ty ibm. Tiền thân của hệ thập lục phân là hệ thống được sử dụng trong máy tính bentix g-15. Hệ thống bao gồm các số từ 0 đến 9 và các ký tự từ a đến f.

Tổng quan về hệ thập lục phân

Hệ thập lục phân, tên tiếng Anh là hexadecimal, còn gọi là hệ thập lục phân, là một hệ thống đánh số gồm 16 chữ số từ 0 đến 9 và a đến f (không phân biệt chữ hoa chữ thường), quy tắc:

  • a = 10
  • b = 11
  • c = 12
  • d = 13
  • e = 14
  • f = 15

Chuyển đổi hệ thống số sang hệ thập lục phân

Thập phân sang Thập lục phân

Thuật toán

  • Bước 1: Chia số thập phân muốn chuyển cho 16 và có nhớ phần dư.
  • Bước 2: Nếu thương của phép chia không bằng 0, tiếp tục lặp lại bước 1. Nếu không, hãy chuyển sang bước 3.
  • Bước 3: Ghi số dư theo thứ tự ngược lại.

Ví dụ

Xem Thêm : Nội dung chính bài Tiếng gà trưa | văn 7 tập 1 (trang 148 – Tech12h

Ở đây tôi sẽ làm một ví dụ chuyển đổi: 923 (10) =? (16)

  • Lần 1: 923/16 lấy 57 dư 11 ​​(tương đương với b trong hệ thập lục phân)
  • Lần 2: 57/16 lấy 3 dư 9
  • Lần 3: 3/16 lấy 0 dư 3 và dừng lại.
  • Viết phần dư theo thứ tự ngược lại, ta được:

Sơ đồ triển khai

ss_02

Hệ nhị phân chuyển qua hệ thập lục phân

Thuật toán

  • Bước 1: Nhóm 4 bit ngoài cùng bên phải của số nhị phân.
  • Bước 2: Chuyển từng nhóm trên thành các số thập lục phân tương ứng theo bảng sau:

Ví dụ

Thực hiện chuyển đổi nhị phân: 110101101010111001101010 (2) =? (16)

  • Bước 1: Nhóm 4 bit từ phải sang trái, ta được:
    • 1101 0110 1010 1110 0110 1010
    • 1101 0110 1010 1110 0110 1010 d 6 a e 6 a

    Vì vậy, chúng tôi nhận được 110101101010111001101010 (2) = d6ae6a (16)

    c / c ++ hex

    Trong c / c ++, ký tự “0x” được sử dụng làm tiền tố cho các số thập lục phân, ví dụ: “0x5a3”. Các số không ở đầu (0) được sử dụng để trình phân tích cú pháp có thể trực tiếp nhận ra số và “x” đại diện cho một ký tự thập lục phân. Chữ “x” trong tiền tố “0x” có thể là chữ hoa (0x) hoặc chữ thường (0x), nhưng chữ thường là phổ biến.

    Chúng ta có thể gán giá trị cho một biến thập lục phân như sau: int a = 0x5a3;

    Xem Thêm : Cách in 2 mặt như thế nào trong word, pdf, excel – Dương Tiến Phát

    Và xuất ra giá trị của biến a ở dạng thập lục phân: printf (“0x% x”, a);

    Cũng xuất ra màn hình ở dạng thập phân: printf (“% d”, a);

    Cài đặt thuật toán chuyển đổi

    Dựa trên thuật toán trên, mình tiếp tục cài đặt hàm converttdectohex, hai tham số là int kiểu n, des là kiểu char * và chuyển decimal sang hexadecimal.

    Cài đặt hàm converttdectohex:

    Thực hiện chức năng chính:

Nguồn: https://xettuyentrungcap.edu.vn
Danh mục: Hỏi Đáp

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button