Tuần này tôi đã có một cuộc phỏng vấn, nơi tôi được yêu cầu thực hiện một thao tác sử dụng số nhị phân. Nó khiến tôi tò mò muốn tìm hiểu sâu hơn về các số nhị phân và cố gắng làm quen với chúng một chút.
Số nhị phân là gì?
Để biết chính xác những gì bạn cần làm để chuyển đổi một số thành nhị phân, hãy xem chính xác số nhị phân là gì. Wikipedia không phải là một định nghĩa đặc biệt phức tạp, In mathematics and digital electronics, a binary number is a number expressed in the base-2 numeral system or binary numeral system, which uses only two symbols: typically "0" [zero] and "1" [one].
Chuyển đổi một số nguyên thành nhị phân
Được rồi, vì bây giờ chúng ta đã biết một số nhị phân là một số được biểu thị bằng cơ số 2, chúng ta có thể xem xét việc chuyển đổi các số của mình. Trong trường hợp đầu vào của chúng tôi là một số nguyên, chúng tôi có thể sử dụng phương thức
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0 của JavaScript để chuyển đổi số của chúng tôiPhương thức
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0 chấp nhận một đối số của cơ số được sử dụng để chuyển đổi một số thành một chuỗiconst myNum = 13
console.log[myNum.toString[2]]
//1101
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Điều đó rất đơn giản. Nhưng nếu đầu vào của chúng ta không phải là một số mà thực tế là một chuỗi thì sao? . Sử dụng hàm
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0, chúng ta có thể chuyển đổi chuỗi của mình thành một số và sau đó chuyển đổi số đó thành chuỗi cơ số 2. Hãy xem nó trông như thế nàoconst myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Vâng, điều đó chắc chắn hoạt động. Nhưng chờ đã, có một đối số tùy chọn cho hàm
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0 cho phép chúng ta chỉ định cơ số sẽ được sử dụng khi chuyển đổi một chuỗi thành một số nguyên. Mặc dù điều này cho phép chúng tôi xác định rằng chúng tôi đang phân tích cú pháp chuỗi thành nhị phân, chúng tôi không bảo toàn toàn bộ chuỗi nhị phân mà chỉ bit đầu tiênconst myInput = '13'
console.log[parseInt[myInput, 2]]
// 1
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Một vấn đề khác với đối số thứ hai của hàm
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0 của chúng tôi là nó trả về NaN khi được hiển thị với số 2 và cơ số của 2const myInput = '2'
console.log[parseInt[myInput, 2]]
// NaN
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Đây là một chút vấn đề vì 2 có thể được chuyển đổi thành số nhị phân. Nếu chúng ta xem xét giải pháp của mình, chúng ta có thể thấy rằng chúng ta có thể làm việc với số 2 và trả về một số nhị phân
const myInput = '2'
console.log[parseInt[myNum].toString[2]]
// 10
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Chà, tôi đoán chúng ta sẽ phải giải quyết việc chuyển đổi một chuỗi thành một số và ngược lại thành một chuỗi. Nó có vẻ như là một chặng đường dài để đi nhưng nó đảm bảo rằng chúng tôi có toàn bộ số nhị phân để làm việc với
Vậy là xong, chúng tôi đã chuyển đổi đầu vào của mình cho dù là số hay chuỗi thành số nhị phân được biểu thị dưới dạng chuỗi. Bạn có thể chuyển đổi lại thành số nguyên nếu cần nhưng nếu số nhị phân của bạn bắt đầu bằng số 0, thì số nguyên của bạn sẽ không khớp với chuỗi nhị phân vì số 0 sẽ bị bỏ đi
________số 8
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Tuy nhiên, chúng tôi đã hoàn thành mục tiêu của mình, số đầu vào đã được chuyển đổi thành số nhị phân. Từ đây chúng ta có thể làm bất cứ điều gì chúng ta cần làm với số nhị phân của mình. Phương thức
const myInput = '13'
console.log[parseInt[myInput].toString[2]]
// 1101
0 thực hiện hầu hết các công việc nặng nhọc ở đây vì nó là phương thức quản lý việc chuyển đổi sang nhị phân