Bàn tính window đổi số hex

Các triển khai hệ điều hành giống Unix khác nhau như Linux và hầu hết mọi thứ có bộ GNU bao gồm ngôn ngữ máy tính cơ bản bc. Cú pháp của nó rất giống với ngôn ngữ lập trình C. Bạn có thể sử dụng nó như một máy tính hệ thập lục phân ngay từ dòng lệnh, vì vậy bạn sẽ không bao giờ cần phải tải xuống một số ứng dụng thập lục phân hoặc bát phân cho điện thoại của mình nữa.

Đây là một tin tuyệt vời cho các nhà phát triển và bất kỳ ai đang làm bài tập về nhà. Tuy nhiên, bạn sẽ cần phải mở một thiết bị đầu cuối để thực hiện việc này. Nhấn giữ Ctrl, Alt và T hoặc tìm kiếm từ đầu cuối trên Ubuntu Unity Dash. Bạn có thể muốn khởi động nó từ menu Whisker hoặc Ứng dụng trong Công cụ Hệ thống. Người dùng macOS có thể bắt đầu một thiết bị đầu cuối từ thư mục Tiện ích hoặc bằng cách nhấp vào thanh công cụ nếu nó được ghim. Bạn có thể tìm thấy bc trên hầu hết các hệ điều hành giống Unix ngày nay và không chỉ trong Linux.

Phương pháp 1: Sử dụng bc để chuyển đổi số thập phân và số thập lục phân

Kiểu echo obase=16;127 | bc để chuyển đổi số 127 sang hệ thập lục phân từ các số cơ số 10 thông thường. Đương nhiên, bạn có thể thay thế số đó bằng bất kỳ số nguyên nào. Kết quả bạn sẽ nhận được là 7F và nếu bạn muốn chuyển đổi trở lại cơ số 10 thông thường, bạn có thể nhập echo ibase=16;obase=A;7F | bc và nhấn enter. Nó đơn giản và có thể được sử dụng bất cứ lúc nào với bất kỳ số hex hợp lệ nào. Là một lệnh kiểu Unix hợp lệ, bạn cũng có thể kết hợp lệnh này vào bất kỳ loại tập lệnh shell nào. Dễ nhớ rằng bạn có thể sử dụng điều này từ dòng lệnh bất cứ lúc nào bạn cần chuyển đổi một số qua lại một cách nhanh chóng.

Phương pháp 2: Chuyển đổi số nhị phân và số thập lục phân bằng Máy tính hex bc

Tại dấu nhắc lệnh, gõ echo obase=16;ibase=2;111010001 | bc để chuyển đổi một số nhị phân thành một số hex. Nhấn enter và bạn sẽ nhận được 1D1 dưới dạng phản hồi. Đương nhiên, bạn có thể điền vào dòng nhị phân đó với bất kỳ số nhị phân nào mà bạn cần chuyển đổi vào thời điểm đó. Một lần nữa, điều ngược lại là đúng và có thể sử dụng máy tính hex đi kèm để chuyển đổi một số hex thành một số nhị phân. Đánh máy echo obase=2;ibase=16;1D1 | bc và nhấn enter thì bạn sẽ lấy lại số ban đầu của mình, nhưng bạn có thể thay thế 1D1 bằng các giá trị hex hợp lệ khác.

Bàn tính window đổi số hex

Nếu bạn sử dụng điều này thường xuyên, thì bạn sẽ cần lưu ý hai điểm. Một là các chữ cái vốn có trong số thập lục phân phải luôn là chữ hoa, vì phần mềm bc xử lý chữ thường như các biến đại số. Thứ hai là tất cả các lệnh này có thể được chạy bởi người dùng thông thường và bạn không cần quyền truy cập root để thực hiện chúng trên bất kỳ phiên bản Linux hoặc Unix hiện đại nào.

Phương pháp 3: Sử dụng bc làm Máy tính Hex đầy đủ

Bạn cũng có thể sử dụng lệnh bc như một máy tính hex để thực hiện số học nếu bạn cần. Hầu hết mọi người sẽ không có nhu cầu này, nhưng những người là lập trình viên có thể cần phải tìm ra sự khác biệt giữa hai vị trí khác nhau trong bộ nhớ. Đây cũng là một câu hỏi thực sự phổ biến của những ai đang làm bài tập về môn khoa học máy tính cho các trường trung học và đại học!

Bàn tính window đổi số hex

Giả sử bạn có một số hex là EE65522D và bạn muốn trừ C3EFAF86 khỏi nó. Bạn có thể gõ echo ibase=16;EE65522D-C3EFAF86 | bc và nhấn enter để tìm câu trả lời. Nếu bạn muốn câu trả lời ở dạng thập lục phân, thì bạn có thể thử echo obase=16;ibase=16;EE65522D-C3EFAF86 | bc để giải quyết nó theo cách đó. Các phép toán số học khác cũng được phép. Ví dụ, echo obase=16;ibase=16;EE65522D*C3EFAF86 | bc sẽ nhiều hơn hai giá trị. Tất nhiên, bạn có thể sử dụng + như một toán hạng để cộng nếu bạn muốn. Sử dụng / cho phép chia không trả lại phần còn lại; bạn cần sử dụng% cho modulus để làm điều đó.

Bàn tính window đổi số hex

Ví dụ: chạy tiếng vang obase=16;ibase=16;EE65522D%C3EFAF86 | bc trả về giá trị 2A75A2A7, vì thương của phương trình đó là 1 phần dư 2A75A2A7 khi chạy qua máy tính hex. Chạy toán hạng / trước rồi đến toán hạng% để tìm cả hai giá trị.

Bàn tính window đổi số hex

Trong thực tế, con người chúng ta quen với các số biểu diển bằng hệ thập phân, nhưng trên máy tính thì máy tính sử dụng hệ số Nhị phân với hai chữ số 0 hoặc 1 để biểu diển cho tất cả các dữ liệu. Các số Thập lục phân thường dùng biểu diển cho các dạng địa chỉ, ví dụ như địa chỉ vùng nhớ trên RAM. Nhưng để dễ tiếp cận thì tôi đơn cử các trường hợp dùng Nhị phân mà bạn thường gặp là biểu diển các bit địa chỉ IPv4 (khi phân tích chúng ra), còn các số Thập lục phân dùng biểu diển cho địa chỉ MAC của card mạng và IPv6.

Trong bảng dưới ta thấy, để biểu diển các số thập phân, người ta dùng mười chữ số từ 0 đến 9. Để biểu diển Nhị phân thì người ta dùng hai số 0 và 1. Đối với Thập lục phân, để biểu diển các con số ngoài mười chữ số từ 0 đến 9 như thập phân, chúng còn có các số tương ứng từ 10 đến 15 được biểu diển bằng các ký tự từ A đến F. Đối với hệ bát phân, người ta dùng các số từ 0 đến 7 để biểu diển các giá trị.

Bàn tính window đổi số hex

Để đổi một số thập phân sang Nhị phân, chúng ta lấy số muốn đổi sang nhị phân chia với 2 và sau đó lấy kết quả chia tiếp tục chia với 2, và lập lại phép chia này cho đến khi ta nhận được kết quả là 0 (từ trên xuống, theo mũi tên màu xanh). Ở phép chia này, ta lấy dư là 0 và 1. Sau khi chia đến kết quả bằng 0, ta sẽ lấy các con số dư ghi lại từ dưới lên (theo chiều mũi tên màu đỏ) ta được dãy số gồm 0 và 1, đây chính là giá trị ta cần tìm (các số dư chỉ là 0 và 1, không được chia kết quả ra phần lẻ, ví dụ như 2,5).

Bàn tính window đổi số hex

Trong phép chia trên, ta muốn tìm giá trị Nhị phân của số 11, ta lấy số 11 chia cho 2 và sau đó chia liên tục kết quả với 2 cho đến khi nào kết quả bằng 0. Sau đó, ta lấy số dư ghi lại và ta được kết quả Nhị phân của số 11 là 1011.

Để đổi giá trị Nhị phân ra thành Thập phân, ta lấy dãy số Nhị phân cần chuyển, nhân lần lượt các phần tử của chúng bắt đầu từ phần tử cuối (theo chiều mũi tên màu đỏ) với 20 cho đến 2n-1  (với n là số phần tử của dãy số), sau đó, chúng ta tiến hành cộng các giá trị tìm được từ phép nhân, ta sẽ được kết quả một con số dưới dạng Thập phân.

Bàn tính window đổi số hex

Ở đây, chúng ta cần tìm giá trị của chuổi 1011, vậy ta nhân lần lượt các phần tử trong chuỗi số bắt đầu từ phần tử cuối cùng nhân với 20 đến 23 (vì ở đây dãy này có n = 4 số vậy n-1 =3). Sau đó, chúng ta tiến hành cộng các giá trị tìm được từ phép nhân, ta sẽ được kết quả Thập phân của dãy Nhị phân 1011 là 11.

Tương tự như cách đổi Thập phân ra Nhị phân, ta có thể tiến hành đổi các số Thập phân ra hệ Thập lục phân, nhưng ở đây chúng ta lấy số cần đổi chia cho 16. Chúng ta cũng tiến hành phép chia từ trên xuống, theo chiều mũi tên màu xanh và  ghi lại kết quả từ dưới lên, theo chiều mũi tên màu đỏ, giá trị lấy dư không được quá 15. Do hệ Thập lục phân có phần biểu diển các giá trị từ 10 đến 15 là A, B, C, D, E, F nên các số dư trươc khi ghi lại thành dãy số Thập lục phân từ 10 đến 15 phải quy đổi thành các ký tự từ A đến F.

Bàn tính window đổi số hex

Ở trong ví dụ ta có 11=B, 12=C, vậy kết quả biểu diển của 700 thành Thập lục phân là 2BC (chia theo chiều mũi tên xanh và ghi lại kết quả theo chiều mũi tên đỏ, giá trị lấy dư không được quá 15).

Để đổi ngược từ Thập lục phân sang Thập phân, chúng ta tiến hành tương tự như việc chuyển đổi Nhị phân ra Thập phân, nhưng ở đây chúng ta phải đổi các giá trị biểu diển từ A đến F ra thành các số tương ứng (theo bảng các giá trị bên trên), sau đó nhân các số này bắt đầu từ số cuối cùng với 160 đến 16n-1 (theo chiều mũi tên đỏ), sau khi nhân xong, ta lấy tổng các giá trị tìm được.

Bàn tính window đổi số hex

Ở đây 2BC =700.

Tương tự, ta có thể đổi hệ Thập phân ra hệ Bát phân bằng cách chia con số Thập phân cần đổi với 8 rồi lấy kết quả chia với 8 liên tục cho đến khi kết quả bằng 0, sau đó ghi lại các số dư từ dưới lên để có được dãy Bát phân. Số dư của phép chia không được lớn hơn 7.

Bàn tính window đổi số hex

Ở ví dụ ta thấy giá trị Bát phân của số Thập phân 142 là 216.

Để đổi ngược lại Bát phân ra thập phân, chúng ta nhân từ giá trị của dãy Bát phân với 80 đến 8n-1 theo chiều mũi tên đỏ.

Bàn tính window đổi số hex

Sau khi đổi dãy Bát phân 216 ra Thập phân, ta được một số Thập phân 142.

Ngoài ra, để cho nhanh trong việc chuyển đổi các hệ số ta có thể dùng máy tính, ví dụ như tính năng Calculator trong hệ điều hành Windows, ta chọn chế độ Programmer.

Bàn tính window đổi số hex

Ta chỉ cần chọn các hệ số nguồn, sau đó nhận vào sô cần đổi, và chọn hệ số đích là có thể chuyển đổi.

Bàn tính window đổi số hex

Ngoài ra còn có những công cụ online, ở đây tôi giới thiệu với bạn một công cụ tại địa chỉ sau:

https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

Việc nắm vững  được cách chuyển đổi từ thập phân sang hai hệ số này rất quan trọng để bạn hiểu được các dạng địa chỉ được sử dụng trong ngành mạng máy tính. Ở bài viết này, chúng ta tìm hiểu về phần nguyên, trong phần tiếp theo chúng ta sẽ được giới thiệu về chuyển đổi phần lẻ sau dấu phẩy thập phân.