Làm cách nào để chuyển đổi thập phân thành thập lục phân trong JavaScript?

Bạn không cần phải là một chuyên gia toán học để trở thành một lập trình viên giỏi, nhưng có một số khái niệm toán học cần học để giúp bạn hiểu cách máy tính hoạt động và giúp bạn thành công trong các cuộc phỏng vấn. Trong hướng dẫn này, bạn sẽ tìm hiểu cách chuyển đổi một số thập phân thành bất kỳ cơ số nào giữa nhị phân và thập lục phân bằng cách sử dụng cấu trúc dữ liệu Stack với các ví dụ trong JavaScript

Thực hành truy xuất

  • Ngăn xếp là gì?

  • Căn cứ là gì?

  • Làm thế nào để bạn chuyển đổi một số thập phân thành nhị phân?

Ngăn xếp là gì?

Ngăn xếp là một cấu trúc dữ liệu tuân theo nguyên tắc Nhập sau xuất trước (LIFO). Chúng tôi chỉ có thể thêm hoặc xóa các phần tử từ đỉnh ngăn xếp

Nếu bạn muốn tìm hiểu sâu hơn, hãy xem Cấu trúc dữ liệu ngăn xếp JavaScript

Căn cứ là gì?

Cơ số là số các chữ số khác nhau dùng để đếm trong một hệ thống số. Chúng tôi đếm ở cơ sở 10 rất có thể là do chúng tôi tiến hóa mười ngón tay. Khi chúng ta đếm trong cơ số 10, chúng ta sử dụng mười số nguyên riêng biệt

Làm thế nào để chuyển đổi một số thập phân thành nhị phân

Để hiểu cách chuyển đổi một số thập phân thành cơ số, trước tiên bạn cần hiểu cách chuyển đổi một số thập phân thành nhị phân. Nhị phân là cơ sở 2. Chúng ta có hai chữ số khác nhau để đếm,

F
1 và
F
2. (Hoặc
F
3 và
F
4)

Để tính giá trị nhị phân, chúng ta cần chia số thập phân cho

F
5 cho đến khi thương số bằng không. Chúng tôi lưu trữ phần còn lại của mỗi phép chia và sử dụng nó để tạo một chuỗi đại diện cho cơ sở

Nếu bạn muốn tìm hiểu sâu hơn, hãy xem Cách chuyển đổi số thập phân thành nhị phân trong JavaScript

Hãy nhận Meta 🧠

Hãy tự hỏi bản thân những câu hỏi sau và ghi nhớ chúng khi bạn tiếp tục

  • Làm thế nào để bạn xây dựng một cái gì đó từ không có gì?

  • Làm thế nào để chúng ta đếm bằng cách sử dụng cơ số lớn hơn 10?

  • Tại sao tôi cần biết điều này?

Cách chuyển đổi số thập phân thành cơ số

Nếu chuyển đổi một số thập phân thành nhị phân chỉ đơn giản là một quá trình lặp đi lặp lại việc chia số thập phân cho

F
5 và sử dụng phần còn lại để tạo một chuỗi, bạn nghĩ chúng ta chuyển đổi một số thập phân thành bất kỳ cơ số nào?

Mô hình là gì?

Ta chia số thập phân cho cơ số

Hãy chuyển đổi

F
7 thành cơ số 16, hệ thập lục phân. Tuy nhiên, để làm được điều đó, chúng ta cần trả lời câu hỏi đặt ra ở trên. làm thế nào để chúng ta đếm bằng cách sử dụng cơ số lớn hơn 10?

một số là gì?

Đó là một biểu tượng đại diện cho một giá trị

F
2 là gì?

Một biểu tượng đại diện cho giá trị một

'một' là gì?

Một biểu tượng đại diện cho giá trị

F
2. (Và vòng quanh chúng ta đi…)

2048 / 16 = 127
0 là gì?

Trong hệ thống số thập phân hoặc cơ số 10, đó là một giá trị được biểu thị bằng hai ký hiệu. Bởi vì đó là hai biểu tượng, chúng tôi không thể sử dụng nó trong cơ số 16. Giải pháp là gì?

Hệ thập lục phân, hoặc cơ số 16, sử dụng sáu ký tự đầu tiên của bảng chữ cái La Mã để biểu thị các giá trị từ 10 đến 15

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

Nếu chúng tôi muốn tạo cơ sở của riêng mình, chẳng hạn như Biểu tượng cảm xúc thập phân, chúng tôi có thể sử dụng bất kỳ biểu tượng nào chúng tôi muốn

Thập phân Thập lục phân10🍎11🍌12🐈13🐕14🐘15🦊

Biểu tượng không thành vấn đề, miễn là tất cả chúng ta đều đồng ý về giá trị mà nó đại diện. Bạn có nghĩ rằng Emojidecimal sẽ đạt được sức hút không?

Hãy chuyển đổi

2048 / 16 = 127
1 thành hệ thập lục phân. Bước đầu tiên là lấy phần còn lại của cổ tức và số chia của chúng tôi

2048 % 16 = 15

Phần còn lại của chúng tôi là

2048 / 16 = 127
2, nhưng chúng tôi không còn sử dụng cơ số 10 nữa, vì vậy chúng tôi không thể thêm giá trị này vào chuỗi thập lục phân của mình. Nếu chúng tôi sử dụng bảng chúng tôi đã tạo ở trên, chúng tôi có thể thấy rằng
2048 / 16 = 127
2 ánh xạ tới
2048 / 16 = 127
4, vì vậy chúng tôi bắt đầu xây dựng chuỗi thập lục phân của mình với nó, mang lại cho chúng tôi

F

Bước tiếp theo là chia

2048 / 16 = 127

Thương của chúng ta là

2048 / 16 = 127
5, vì vậy chúng ta lặp lại các thao tác trên

127 % 16 = 15

Phần còn lại của chúng tôi lại là

2048 / 16 = 127
2, vì vậy chúng tôi thêm
2048 / 16 = 127
4 vào chuỗi thập lục phân của chúng tôi, cho chúng tôi

FF

Sau đó chúng tôi chia

2048 / 16 = 127
8. Thương của chúng ta là
2048 / 16 = 127
9, vì vậy chúng ta tính phần còn lại và chia
2048 / 16 = 127
9 cho
127 % 16 = 15
1

7 % 16 = 7
7 / 16 < 0

Phần còn lại của chúng tôi là

2048 / 16 = 127
9, vì vậy chúng tôi thêm nó vào chuỗi thập lục phân của chúng tôi, cho chúng tôi

7FF

Cách chuyển đổi thập phân thành thập lục phân và bất kỳ cơ sở nào ở giữa bằng cách sử dụng ngăn xếp trong JavaScript

Hãy cấu trúc lại thuật toán mà chúng ta đã tạo trong Cách chuyển đổi số thập phân thành nhị phân trong JavaScript để chuyển đổi bất kỳ cơ sở nào giữa nhị phân và thập lục phân bằng cách sử dụng ngăn xếp. Nếu bạn không quen thuộc với ngăn xếp, trước tiên bạn có thể muốn đọc Cấu trúc dữ liệu ngăn xếp JavaScript

Để tính một cơ số, chúng ta cần chia số thập phân cho cơ số mong muốn cho đến khi thương số bằng không. Chúng tôi lưu trữ phần còn lại của mỗi phép chia và sử dụng nó để tạo một chuỗi đại diện cho cơ sở

const decimalToBase = (num, base) => {
  const stack = new Stack();

  const digits = '0123456789ABCDEF';

  let result = '';
  
  while (num > 0) {
    stack.push(num % base);
    num = Math.floor(num / base);
  }
  
  while (stack.top > 0) {
    result += digits[stack.pop()];
  }

  return result;
}

Điều gì đang xảy ra ở đây?

Trước tiên, chúng tôi sử dụng lớp

127 % 16 = 15
3 của mình để khai báo một
127 % 16 = 15
4 mới

Sau đó, chúng tôi khai báo một chuỗi,

127 % 16 = 15
5, đại diện cho 16 ký hiệu trong chuỗi thập lục phân của chúng tôi

Tiếp theo, chúng tôi khai báo một chuỗi rỗng,

127 % 16 = 15
6, mà chúng tôi sẽ sử dụng để xây dựng giá trị trả về của mình

Tiếp theo chúng ta khai báo hai vòng lặp

127 % 16 = 15
7

Vòng lặp

127 % 16 = 15
7 đầu tiên lặp lại giá trị của tham số thuật toán của chúng tôi,
127 % 16 = 15
9. Trong mỗi lần lặp lại, chúng tôi sử dụng toán tử modulo,
FF
0, để lấy phần còn lại của
127 % 16 = 15
9 chia cho
FF
2 và
FF
3 thành
127 % 16 = 15
4. Sau đó, chúng tôi gán lại giá trị của
127 % 16 = 15
9 thành giá trị hiện tại của
127 % 16 = 15
9 chia cho
FF
2. Nhưng. Chúng tôi sử dụng
FF
8 để làm tròn xuống. Tại sao?

🔑 Khi giá trị của

127 % 16 = 15
9 nhỏ hơn 0, chúng tôi chuyển sang vòng lặp
127 % 16 = 15
7 thứ hai, vòng lặp này lặp lại trên ngăn xếp. Chúng tôi sử dụng phương pháp
7 % 16 = 7
7 / 16 < 0
1 để loại bỏ từng giá trị khỏi đầu ngăn xếp và xây dựng chuỗi
127 % 16 = 15
6 của chúng tôi bằng cách tra cứu giá trị được liên kết của nó trong
127 % 16 = 15
5

Nếu chúng ta không muốn sử dụng Stack, chúng ta có thể chỉ cần nối một chuỗi, sau đó đảo ngược nó

const decimalToBase = (num, base) => {

  const digits = '0123456789ABCDEF';

  let result = '';
  
  while (num > 0) {
    result += digits[num % base];
    num = Math.floor(num / base);
  }

  return result.split('').reverse().join('');
}

Nhưng

7 % 16 = 7
7 / 16 < 0
4 chuyển đổi chuỗi thành một mảng, vì vậy chúng ta chỉ có thể bắt đầu với một mảng thay thế và sử dụng
7 % 16 = 7
7 / 16 < 0
5 thay vì
7 % 16 = 7
7 / 16 < 0
6 (J4F)

const decimalToBase = (num, base) => {

  const digits = '0123456789ABCDEF';

  let result = [];
  
  while (num > 0) {
    result.unshift(digits[num % base]);
    num = Math.floor(num / base);
  }

  return result.join('');
}

Hoặc chúng ta có thể gian lận và sử dụng phương thức

7 % 16 = 7
7 / 16 < 0
7 tích hợp sẵn và chuyển cơ sở của chúng ta làm đối số, nghĩa là chúng ta muốn chuyển đổi chuỗi của mình thành tham số đã cho. Ví dụ

F
0

Nhưng cai đo co gi vui?

Sự phản xạ

  • Làm thế nào để bạn xây dựng một cái gì đó từ không có gì?

  • Làm thế nào để chúng ta đếm bằng cách sử dụng cơ số lớn hơn 10?

  • Tại sao tôi cần biết điều này?

Làm thế nào để bạn xây dựng một cái gì đó từ không có gì?

Mẫu biểu mẫu. Nếu bạn muốn tìm hiểu sâu hơn, hãy xem bài viết của tôi Hình thành mẫu và giải quyết vấn đề

Làm thế nào để chúng ta đếm bằng cách sử dụng cơ số lớn hơn 10?

Hệ thập lục phân, hoặc cơ số 16, sử dụng sáu ký tự đầu tiên của bảng chữ cái La Mã để biểu thị các giá trị từ 10 đến 15

Tại sao tôi cần biết điều này?

Bạn không cần phải là một chuyên gia toán học để trở thành một lập trình viên giỏi. Tuy nhiên, có một số khái niệm toán học cần học để giúp bạn hiểu cách máy tính hoạt động và giúp bạn thành công trong các cuộc phỏng vấn

Trong hướng dẫn này, bạn đã học cách chuyển đổi một số thập phân thành thập lục phân và bất kỳ cơ số nào ở giữa nhị phân và sử dụng cấu trúc dữ liệu Stack với các ví dụ trong JavaScript


Làm cách nào để chuyển đổi thập phân thành thập lục phân trong JavaScript?

Làm cách nào để chuyển đổi thập phân thành thập lục phân trong JavaScript?

Bạn muốn nâng cao kỹ năng giải quyết vấn đề của mình? . Tham gia ngay

Làm cách nào để chuyển đổi số thập phân thành thập lục phân trong JavaScript?

Để chuyển đổi một số thập phân thành hex trong JavaScript, gọi phương thức toString() trên số thập phân, chuyển 16 làm đối số cơ số , i. e. , số. toString(16). Phương thức toString() sẽ trả về biểu diễn chuỗi của số ở dạng thập lục phân.

Làm cách nào để viết hệ thập lục phân trong JavaScript?

JavaScript hỗ trợ sử dụng ký hiệu thập lục phân thay cho bất kỳ số nguyên nào, nhưng không hỗ trợ số thập phân . Ví dụ: số 2514 ở dạng hex là 0x9D2, nhưng không có cách nào được ngôn ngữ hỗ trợ để biểu thị 25. 14 dưới dạng số hex.

Làm cách nào để chuyển đổi chuỗi thành hệ thập lục phân trong JavaScript?

hàm ConvertStringToHex(str) {.
var str = "strToHex";
hàm ConvertHexToString(str) {.
var str = "\u0073\u0074\u0072\u0054\u006f\u0048\u0065\u0078";
parseInt("ac", 16); . 172