Hướng dẫn how do you binary in javascript? - làm thế nào để bạn nhị phân trong javascript?

Một giải pháp tôi sẽ đi với điều đó tốt cho 32 bit, là mã kết thúc của câu trả lời này, từ nhà phát triển.mozilla.org (MDN), nhưng với một số dòng được thêm vào) Số là trong phạm vi.

Một số đề xuất x.toString(2) không hoạt động cho các tiêu cực, nó chỉ dán một dấu trừ trong đó cho họ, điều này không tốt.

Fernando đã đề cập đến một giải pháp đơn giản của (x>>>0).toString(2); tốt cho các tiêu cực, nhưng có một vấn đề nhỏ khi X là dương. Nó có đầu ra bắt đầu với 1, mà đối với các số dương không bổ sung 2S phù hợp.

Bất cứ ai không hiểu thực tế của các số dương bắt đầu bằng 0 và số âm với 1, trong 2S bổ sung, có thể kiểm tra điều này để QNA bổ sung trên 2S. Bổ sung 2 của 2 là gì?

Một giải pháp có thể liên quan đến việc chi tiêu 0 cho các số dương, điều mà tôi đã làm trong một bản sửa đổi trước đó của câu trả lời này. Và đôi khi người ta có thể chấp nhận có số 33 bit hoặc người ta có thể đảm bảo rằng số để chuyển đổi nằm trong phạm vi -(2^31)

Câu trả lời và mã của Patrick dài và dường như hoạt động cho 64 bit, nhưng có một lỗi mà một người bình luận đã tìm thấy, và người bình luận đã sửa lỗi của Patrick, nhưng Patrick có một số "số ma thuật" trong mã của anh ta mà anh ta không bình luận và đã quên mất và Patrick không còn hiểu đầy đủ về mã của chính mình / tại sao nó hoạt động.

Annan có một số thuật ngữ không chính xác và không rõ ràng nhưng đã đề cập đến một giải pháp của nhà phát triển.mozilla.org

Lưu ý- Liên kết cũ https://developer.mozilla.org/en-us/docs/web/javascript Archive.org Lấy các trang !, Có sẵn tại đây https://web.archive.org/web/20150315015832/https://developer.mozilla.org/en-us/docs/web/javascript

Giải pháp ở đó hoạt động cho các số 32 bit.

Mã này khá nhỏ gọn, một chức năng của ba dòng.

Nhưng tôi đã thêm một regex để định dạng đầu ra theo nhóm 8 bit. Dựa trên cách in một số với dấu phẩy dưới dạng hàng ngàn máy phân tách trong JavaScript (tôi vừa sửa đổi nó từ việc nhóm nó trong 3 giây sang trái và thêm dấu phẩy, để nhóm trong 8 giây sang trái và thêm không gian)

Và, trong khi Mozilla đưa ra một nhận xét về kích thước của NMASK (số được cho ăn vào) .. rằng nó phải nằm trong phạm vi, họ đã không kiểm tra hoặc ném lỗi khi số nằm ngoài phạm vi, vì vậy tôi Thêm vào đó.

Tôi không chắc tại sao họ đặt tên cho tham số của họ 'NMASK' nhưng tôi sẽ để lại như vậy.

https://web.archive.org/web/20150315015832/https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

function createBinaryString(nMask) {
  // nMask must be between -2147483648 and 2147483647
  if (nMask > 2**31-1) 
     throw "number too large. number shouldn't be > 2**31-1"; //added
  if (nMask < -1*(2**31))
     throw "number too far negative, number shouldn't be < 2**31" //added
  for (var nFlag = 0, nShifted = nMask, sMask = ''; nFlag < 32;
       nFlag++, sMask += String(nShifted >>> 31), nShifted <<= 1);
  sMask=sMask.replace(/\B(?=(.{8})+(?!.))/g, " ") // added
  return sMask;
}


console.log(createBinaryString(-1))    // "11111111 11111111 11111111 11111111"
console.log(createBinaryString(1024))  // "00000000 00000000 00000100 00000000"
console.log(createBinaryString(-2))    // "11111111 11111111 11111111 11111110"
console.log(createBinaryString(-1024)) // "11111111 11111111 11111100 00000000"

//added further console.log example
console.log(createBinaryString(2**31 -1)) //"01111111 11111111 11111111 11111111"  

Làm cách nào để chuyển đổi số thành nhị phân?Bitwise Operations


Chuyển đổi số nguyên thập phân sang nhị phân thành chuyển đổi số nguyên thành nhị phân, bắt đầu với số nguyên được đề cập và chia nó cho 2 thông báo về thương số và phần còn lại. Tiếp tục chia thương số cho 2 cho đến khi bạn nhận được chỉ số bằng không. Sau đó, chỉ cần viết ra phần còn lại theo thứ tự ngược lại.

Làm thế nào để bạn đọc nhị phân?Để hiểu một số trong nhị phân, đối với các số toàn bộ, chúng ta cần nhận ra rằng chữ số nhị phân quan trọng nhất (hoặc bit ngắn) là ở bên trái và bit có ý nghĩa ít nhất ở bên phải. Khi chúng ta nhìn sang phải sang trái, mỗi bit đại diện cho công suất cao hơn là 2 (vì nhị phân là cơ sở 2).Làm thế nào để bạn viết số thập lục phân trong javascript?
Để chuyển đổi một số thành thập lục phân, hãy gọi phương thức toString () trên số, chuyển nó 16 làm cơ sở, ví dụ: Num. 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ố.Các hoạt động bitwise javascriptCác toán tử bitwise javascript
Nhà điều hànhTênSự mô tả
Không có giá trịĐặt mỗi bit thành 1 nếu cả hai bit là 1
|HOẶCĐặt mỗi bit thành 1 nếu một trong hai bit là 1
^XORĐặt mỗi bit thành 1 nếu chỉ có một trong hai bit là 1
~KHÔNG PHẢIĐảo ngược tất cả các bit
<Không điền vào ca tráiSự thay đổi bên trái bằng cách đẩy các số không vào từ bên phải và để các bit ngoài cùng bên trái rơi ra

>>

Đã ký đúng sự thay đổiDịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra>>>Dịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra
>>>1 Không điền đúng caDịch chuyển phải bằng cách đẩy các số không vào từ bên trái và để các bit ngoài cùng bên phải rơi ra
Ví dụ5 Hoạt độngKết quả
Giống như10 5 & ​​10101 & 0001
& nbsp; 000110 5 | 10101 & 0001
& nbsp; 00014 5 | 10101 | 0001
& nbsp; 01012 ~ 5& nbsp; ~ 0101
5 >>> 12 & nbsp; 1010& nbsp; ~ 0101


& nbsp; 1010

5 <1

0101 <1

5 ^ 1

0101 ^ 0001

& nbsp; 0100

5 >> 1

0101 >> 1

& nbsp; 0010



0101 >>> 1

JavaScript sử dụng 32 bit bitwise

Đã ký đúng sự thay đổiDịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra
>>>0
Không điền đúng ca0
Dịch chuyển phải bằng cách đẩy các số không vào từ bên trái và để các bit ngoài cùng bên phải rơi ra0
Ví dụ1

Hoạt động

Đã ký đúng sự thay đổiDịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra
>>>0000
Không điền đúng ca0001
Dịch chuyển phải bằng cách đẩy các số không vào từ bên trái và để các bit ngoài cùng bên phải rơi ra0010
Ví dụ0100


Hoạt động

Kết quả

JavaScript sử dụng 32 bit bitwise

Đã ký đúng sự thay đổiDịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra
>>>0
Không điền đúng caDịch chuyển phải bằng cách đẩy các số không vào từ bên trái và để các bit ngoài cùng bên phải rơi ra
Ví dụ1
Hoạt động1

Hoạt động

Đã ký đúng sự thay đổiDịch chuyển phải bằng cách đẩy các bản sao của bit ngoài cùng bên trái từ bên trái và để các bit ngoài cùng bên phải rơi ra
1111 | 00001111
1111 | 00011111
1111 | 00101111
1111 | 01001111


JavaScript bitwise XOR

Khi một BitWise XOR được thực hiện trên một cặp bit, nó sẽ trả về 1 nếu các bit khác nhau:

Một ví dụ bit:

Hoạt độngKết quả
0 ^ 00
0 ^ 11 & nbsp;
1 ^ 01
1 ^ 10 & nbsp;

4 bit ví dụ:

Hoạt độngKết quả
0 ^ 01111
0 ^ 11110
1 & nbsp;1101
1 ^ 01011


1 ^ 1

0 & nbsp;

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1 00000000000000000000000000000001
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1 00000000000000000000000000000001
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1 00000000000000000000000000000001
1111 ^ 00011111 ^ 0010

1111 ^ 0100

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

4 bit ví dụ:1111 ^ 0000
-5 11111111111111111111111111111011
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

4 bit ví dụ:1111 ^ 0000
5 00000000000000000000000000000101
1111 ^ 00011111 ^ 0010

1111 ^ 0100

JavaScript bitwise và (&)

BitWise và trả về 1 chỉ khi cả hai bit là 1:Số thập phân
00000000000000000000000000000001 1
00000000000000000000000000000010 2
00000000000000000000000000000100 4
00000000000000000000000000001000 8
00000000000000000000000000010000 16
00000000000000000000000000100000 32
00000000000000000000000001000000 64

Nhị phân

BitWise và trả về 1 chỉ khi cả hai bit là 1:Số thập phân
00000000000000000000000000000101 Nhị phân
00000000000000000000000000001101 5 & ​​1
00000000000000000000000000101101 00000000000000000000000000000001 (1)

JavaScript bitwise hoặc (|)

BitWise hoặc trả về 1 nếu một trong các bit là 1:

BitWise và trả về 1 chỉ khi cả hai bit là 1:Số thập phân
00000000000000000000000000000101 5
11111111111111111111111111111011 -5
00000000000000000000000000000110 6
11111111111111111111111111111010 -6
00000000000000000000000000101000 40
11111111111111111111111111011000 -40

Nhị phân


5 & ​​1

00000000000000000000000000000001 (1)

JavaScript bitwise hoặc (|)
  return parseInt(bin, 2).toString(10);
}

BitWise hoặc trả về 1 nếu một trong các bit là 1:



Làm cách nào để chuyển đổi số nguyên thành nhị phân trong javascript?

Để chuyển đổi một số nguyên thành nhị phân trong javascript, chia số nguyên cho 2 và lưu trữ phần còn lại.divide the integer by 2 and store the remainder.

Làm cách nào để chuyển đổi số thành nhị phân?

Chuyển đổi số nguyên thập phân sang nhị phân thành chuyển đổi số nguyên thành nhị phân, bắt đầu với số nguyên được đề cập và chia nó cho 2 thông báo về thương số và phần còn lại.Tiếp tục chia thương số cho 2 cho đến khi bạn nhận được chỉ số bằng không.Sau đó, chỉ cần viết ra phần còn lại theo thứ tự ngược lại.start with the integer in question and divide it by 2 keeping notice of the quotient and the remainder. Continue dividing the quotient by 2 until you get a quotient of zero. Then just write out the remainders in the reverse order.

Làm thế nào để bạn đọc nhị phân?

Để hiểu một số trong nhị phân, đối với các số toàn bộ, chúng ta cần nhận ra rằng chữ số nhị phân quan trọng nhất (hoặc ngắn gọn) ở bên trái và bit đáng kể nhất ở bên phải.Khi chúng ta nhìn sang phải sang trái, mỗi bit đại diện cho công suất cao hơn là 2 (vì nhị phân là cơ sở 2).the most significant binary digit (or bit for short) is on the left and least significant bit is on the right. As we look right to left, each bit represents a higher power of 2 (because binary is base 2).

Làm thế nào để bạn viết số thập lục phân trong javascript?

Để chuyển đổi một số thành thập lục phân, hãy gọi phương thức toString () trên số, chuyển nó 16 làm cơ sở, ví dụ:Num.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ố.call the toString() method on the number, passing it 16 as the base, e.g. num. toString(16) . The toString method takes the base as a parameter and returns the string representation of the number.