Tìm hiểu cách sử dụng các lệnh chuyển đổi cơ sở do Linux cung cấp, cũng như cách sử dụng tập lệnh và bí danh để hợp lý hóa quy trình
Hình ảnh Matejmo / Getty
Bạn có thể không thường xuyên gặp thách thức khi chuyển đổi các số từ hệ thống đánh số này sang hệ thống đánh số khác, nhưng khi gặp khó khăn, bạn có thể thực hiện việc đó bằng một trong hai lệnh khá dễ dàng trên dòng lệnh Linux
Chuyển đổi trong đầu của bạn có thể bị đánh thuế, đặc biệt là đối với các số dài hơn. Trong khi hệ thống đánh số thập phân cho phép bất kỳ chữ số nào trong một số có bất kỳ giá trị nào trong số mười giá trị [0-9], thì các chữ số trong số thập lục phân có thể có 16 [0-F], các chữ số trong số bát phân chỉ có tám [0-7] và các chữ số trong
Và, dù muốn hay không, thỉnh thoảng bạn vẫn có khả năng gặp phải các số được hiển thị ở dạng thập lục phân hoặc bát phân và biết cách chuyển đổi chúng từ cơ số này sang cơ số khác có thể hữu ích
Để bắt đầu, các số thập phân từ 5 đến 16 trong bốn hệ thống đánh số trông như thế này
5 6 7 8 9 10 11 12 13 14 15 16 “ read number printf ‘%x\n’ $number5
Với số lớn hơn tiếp theo, số thập phân 17, chúng ta nhận được 21—hai số thập phân 8 và một kết quả 1
#!/bin/bash echo -n “Enter a decimal number> “ read number printf ‘%x\n’ $number6
Lệnh bc hoạt động tốt với nhị phân cũng như với hex và bát phân, vì vậy chúng tôi cũng có thể chuyển đổi số thành nhị phân. Đây là lệnh hiển thị số thập phân 16 dưới dạng số nhị phân
$ echo “obase=2; 16” | bc 10000
Được mô tả trong cơ sở 10, đó là một số 16, không có số 8, không có số 4, không có số 2 và không có số 1
Trong khi hệ thống nhị phân được sử dụng vì nó hoạt động trực tiếp với trạng thái bật/tắt của thiết bị điện tử, hệ thống bát phân và thập lục phân cung cấp các chuyển đổi dễ dàng để con người chúng ta không phải nhìn vào chuỗi dài 0 và 1. Ngay cả điều này cũng không hạn chế hoạt động của lệnh bc mà không có vấn đề gì khi làm việc với cơ số 3, cơ số 7 hoặc bất kỳ cơ sở đánh số nào khác mà bạn có thể muốn thử nghiệm
#!/bin/bash echo -n “Enter a decimal number> “ read number printf ‘%x\n’ $number8
Được mô tả là số thập phân, 121 trong ví dụ trên đại diện cho một số 9, hai số 3 và một số 1. Đây là phiên bản cơ sở 7
$ printf ‘%x\n’ 15 f0
Các chữ số trên đại diện cho hai số thập phân 7 và hai số 1
Chuyển đổi số thành số thập phân với bc
Với tất cả những gì đã nói, bạn cũng có thể sử dụng lệnh bc để biến các số được biểu thị bằng hex, bát phân hoặc nhị phân thành thập phân. Chỉ cần chỉ định giá trị obase [cơ sở đầu ra] là 10, số ibase [cơ sở đầu vào] là 16 nếu là số bắt đầu của hex, 8 nếu là bát phân và 2 nếu là nhị phân như trong các ví dụ được hiển thị bên dưới
$ printf ‘%x\n’ 15 f1
Như trong trường hợp trước đó, việc chuyển các lệnh này thành tập lệnh chỉ mất một chút nỗ lực
hex2dec
$ printf ‘%x\n’ 15 f2
oct2dec
$ printf ‘%x\n’ 15 f3
bin2dec
$ printf ‘%x\n’ 15 f4
Sử dụng bí danh cho chuyển đổi cơ sở số
Mặc dù các tập lệnh được hiển thị ở trên rất dễ thiết lập, nhưng có lẽ cách thuận tiện nhất để triển khai bất kỳ chuyển đổi nào được hiển thị là thiết lập chúng dưới dạng một nhóm bí danh. Thêm bí danh bên dưới vào ~/. bashrc sẽ cung cấp chúng trong lần đăng nhập tiếp theo của bạn hoặc ngay sau khi bạn lấy nguồn tệp [e. g. , bằng cách chạy. ~/. bashrc]
$ printf ‘%x\n’ 15 f5
Sau đó, bạn có thể chạy bí danh như thế này
$ printf ‘%x\n’ 15 f6
Gói [lại
Chuyển đổi số từ hệ thống đánh số này sang hệ thống đánh số khác có thể rất tẻ nhạt, nhưng bạn có thể tránh được nhiều rắc rối cho mình bằng cách sử dụng lệnh printf và bc, đặc biệt nếu bạn thiết lập chúng dưới dạng tập lệnh hoặc bí danh
Tiếp theo đọc cái này
- 9 chứng chỉ Wi-Fi thúc đẩy sự nghiệp
- MPLS là gì và tại sao nó vẫn chưa chết?
- 11 cách liệt kê và sắp xếp file trên Linux
- 5 trình quét lỗ hổng mạng miễn phí
- Cách đo tốc độ Wi-Fi doanh nghiệp
Có liên quan
- Linux
Sandra Henry-Stocker đã quản trị hệ thống Unix hơn 30 năm. Cô ấy mô tả mình là "USL" [Unix là ngôn ngữ thứ hai] nhưng nhớ đủ tiếng Anh để viết sách và mua đồ tạp hóa. Cô ấy sống ở vùng núi ở Virginia, nơi mà khi không làm việc với hoặc viết về Unix, cô ấy sẽ đuổi những con gấu ra khỏi máng ăn cho chim của cô ấy