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

Trong hướng dẫn này, bạn sẽ học cách chuyển đổi một số thập phân thành một chuỗi thập lục phân và ngược lại

Thập phân sang HexaDecimal

Để chuyển đổi một Số JavaScript thành số thập lục phân, phương thức toString() được sử dụng. Phương thức

F
1 chấp nhận một tham số số, nằm trong khoảng từ 2 đến 32, chỉ định cơ sở sẽ sử dụng để biểu diễn các giá trị số

(234).toString(16) // "ea"
(-234).toString(16) // "-ea"

Chuyển đổi một số âm thành thập lục phân, dẫn đến thập lục phân âm

Để tránh hệ thập lục phân âm, chúng ta có thể sử dụng biểu diễn thập lục phân bù hai của số âm

((-2)>>>0).toString(16) // "fffffffe"

Chúng tôi đã sử dụng toán tử >>> dịch chuyển phải điền không dấu, giúp chuyển đổi một số âm thành một số không dấu

Float đến HexaDecimal

Để chuyển đổi một số float thành một số thập lục phân, trước tiên bạn phải lấy giá trị tròn của số float và sau đó sử dụng phương thức

F
2 với cơ số 16 để lấy một chuỗi số thập lục phân

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"

HexaDecimal sang Decimal

Để chuyển đổi một chuỗi thập lục phân thành một số, chúng tôi sử dụng phương thức

F
3 với cơ số 16 làm tham số thứ hai

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ể 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 0. 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 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 việc 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 chia nhiều lần 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…)

((-2)>>>0).toString(16) // "fffffffe"
20 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

((-2)>>>0).toString(16) // "fffffffe"
21 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

((-2)>>>0).toString(16) // "fffffffe"
4

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

((-2)>>>0).toString(16) // "fffffffe"
22, 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
((-2)>>>0).toString(16) // "fffffffe"
22 ánh xạ tới
((-2)>>>0).toString(16) // "fffffffe"
24, 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

((-2)>>>0).toString(16) // "fffffffe"
2

Thương số của chúng tôi là

((-2)>>>0).toString(16) // "fffffffe"
25, vì vậy chúng tôi lặp lại các thao tác trên

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
1

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

((-2)>>>0).toString(16) // "fffffffe"
22, vì vậy chúng tôi thêm
((-2)>>>0).toString(16) // "fffffffe"
24 vào chuỗi thập lục phân của mình, cho chúng tôi

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
4

Sau đó chúng tôi chia

((-2)>>>0).toString(16) // "fffffffe"
28. Thương của chúng ta là
((-2)>>>0).toString(16) // "fffffffe"
29, vì vậy chúng ta tính phần còn lại và chia
((-2)>>>0).toString(16) // "fffffffe"
29 cho
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
11

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
9

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

((-2)>>>0).toString(16) // "fffffffe"
29, vì vậy chúng tôi thêm nó vào chuỗi thập lục phân của mình, cho chúng tôi

F
1

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ở

F
2

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

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

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
13 của mình để khai báo một
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
14 mới

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

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
15, đạ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,

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
16, 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

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
17

Vòng lặp

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
17 đầu tiên lặp lại giá trị của tham số thuật toán của chúng tôi,
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
19. Trong mỗi lần lặp, chúng tôi sử dụng toán tử modulo,
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
40, để lấy phần còn lại của
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
19 chia cho
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
42 và
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
43 thành
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
14. Sau đó, chúng tôi gán lại giá trị của
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
19 thành giá trị hiện tại của
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
19 chia cho
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
42. Nhưng mà. Chúng tôi sử dụng
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
48 để làm tròn nó xuống. Tại sao?

🔑 Khi giá trị của

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
19 nhỏ hơn 0, chúng tôi chuyển sang vòng lặp
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
17 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
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
91 để loại bỏ từng giá trị khỏi đầu ngăn xếp và xây dựng chuỗi
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
16 của chúng tôi bằng cách tra cứu giá trị được liên kết của nó trong
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
15

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ó

F
4

Nhưng

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
94 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
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
95 thay vì
(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
96 (J4F)

F
8

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

(2.6).toString(16) // "2.999999999999a"

(Math.round(2.6)).toString(16) // "3"
97 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 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 số thập phân thành hex trong javascript?

Làm cách nào để chuyển đổi số thập phân thành hex 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 từ thập phân sang thập lục phân trong js?

Để 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 để chuyển đổi một số thành JavaScript thập lục phân?

Để chuyển đổi một số sang hệ thập lục phân, gọi phương thức toString() trên số đó, chuyển số đó làm cơ số là 16 , e. g. con số. toString(16). Phương thức toString lấy cơ sở làm tham số và trả về biểu diễn chuỗi của số. Đã sao chép.

Làm cách nào để chuyển đổi chuỗi thành hex trong JavaScript?

Bản trình diễn trực tiếp. .
hàm ascii_to_hexa(str)
var mảng1 = [];
cho (var n = 0, l = str. chiều dài;
var hex = Số (str. charCodeAt(n)). toString(16);
mảng1. đẩy (hex);

Làm cách nào để chuyển đổi hex sang ASCII trong JavaScript?

Bản trình diễn trực tiếp. .
hàm hex_to_ascii(str1)
var hex = str1. toString();
var str = '';
cho (var n = 0; n < hex. chiều dài;
str += Chuỗi. fromCharCode(parseInt(hex. chất nền(n, 2), 16));
trả về str;