Làm cách nào để đặt, xóa, chuyển đổi và kiểm tra một chút bằng JavaScript?Làm cách nào để bạn đặt, xóa và chuyển đổi một bit trong JavaScript?
Trả lời
Để có được một mặt nạ bit:
var mask = 1 << 5; // gets the 6th bit
Để kiểm tra xem một chút được thiết lập:
if ((n & mask) != 0) {
// bit is set
} else {
// bit is not set
}
Để thiết lập một chút:
n |= mask;
Để xóa một chút:
n &= ~mask;
Để chuyển đổi một chút:
n ^= mask;
Tham khảo Javascript bitwise operators.
Tôi muốn thêm một số điều (với nhờ @cletus)
function bit_test(num, bit){
return ((num>>bit) % 2 != 0)
}
function bit_set(num, bit){
return num | 1<<bit;
}
function bit_clear(num, bit){
return num & ~(1<<bit);
}
function bit_toggle(num, bit){
return bit_test(num, bit) ? bit_clear(num, bit) : bit_set(num, bit);
}
Điều này thật tuyệt vời. Bạn có thể giải thích tại sao bit_test hoạt động? Tôi hiểu sự thay đổi đúng để di chuyển bit thú vị đến vị trí ngoài cùng bên phải, nhưng tôi bị lạc cố gắng hiểu giá trị trung gian là gì và tại sao phần còn lại của nó khi chia cho 2 là không khác khi được đặt. – Raoul
Sau khi bạn nhận được bit mong muốn ở vị trí ngoài cùng bên phải, bạn chỉ cần kiểm tra xem giá trị mới có bị giảm hay không (new_value% 2! = 0). Một số suy giảm sẽ có bit0 = 1 hoặc else bit0 = 0 (vì bit0 là 2 để cấp 0 là 1) – UnLoCo
tôi đã xây dựng một lớp BitSet với sự giúp đỡ của thông tin @cletus:
function BitSet() {
this.n = 0;
}
BitSet.prototype.set = function(p) {
this.n |= (1 << p);
}
BitSet.prototype.test = function(p) {
return (this.n & (1 << p)) !== 0;
}
BitSet.prototype.clear = function(p) {
this.n &= ~(1 << p);
}
BitSet.prototype.toggle = function(p) {
this.n ^= (1 << p);
}
- 1. Làm thế nào để chuyển đổi một byte thành bit?
- 2. Làm cách nào để chuyển đổi bit thành byte?
- 3. Làm thế nào để bạn xóa tiêu điểm trong javascript?
- 4. Làm thế nào để chuyển đổi một OpenCV IplImage 8-bit * thành IplImage 32-bit *?
- 5. Làm cách nào để chuyển đổi các byte 8 bit thành các ký tự 6 bit?
- 6. Làm cách nào để chuyển đổi chuỗi thành một dòng mã thực thi trong Javascript?
- 7. Làm cách nào để bit chuyển đổi dài hơn 32 bit?
- 8. Làm thế nào để bạn tắt một bit cụ thể trong một mặt nạ bit?
- 9. Làm thế nào để chuyển đổi BufferedImage thành 8 bit?
- 10. Làm thế nào để chuyển đổi 8 bit đến 16 bit trong VHDL?
- 11. Làm cách nào để xóa bộ nhớ trong Javascript?
- 12. Làm thế nào để xóa một thời gian chờ javascript Thats đặt trong một hàm
- 13. Làm thế nào để bạn xóa một nút trong networkx?
- 14. Làm thế nào để bạn xóa một cây trong ExtJs?
- 15. Làm thế nào để chuyển đổi một "đối tượng" thành một hàm trong JavaScript?
- 16. Javascript - chuyển đổi số nguyên thành mảng của các bit
- 17. cách chuyển đổi hai byte thành một số 16 bit?
- 18. Làm cách nào để chuyển đổi một số nguyên 64 bit thành mảng char và ngược lại?
- 19. làm cách nào bạn đặt kính lúp và "tìm kiếm" trong hộp tìm kiếm trong stackoverflow?
- 20. Trong Golang, làm thế nào để bạn chuyển đổi một slice thành một mảng
- 21. Làm cách nào để bạn đặt "max_allowed_packet" trong XAMPP?
- 22. Làm thế nào để bạn viết một lớp trong Javascript?
- 23. Chuyển đổi phao sang bit
- 24. Làm thế nào để bạn chuyển đổi một mảng byte thành một thể hiện Bitmap (.NET)?
- 25. Chuyển đổi byte thành bit trong python
- 26. Làm thế nào để bạn PIVOT trên một kiểu dữ liệu bit trong SQL Server?
- 27. Làm cách nào để xóa một tác vụ trong Android và thay đổi hoạt động gốc?
- 28. Làm thế nào để chuyển đổi một tập hợp con của các bit trong một bitmap C++ thành một số?
- 29. Trong java, làm thế nào để bạn viết một java.awt.image.BufferedImage vào một tệp png 8-bit?
- 30. Làm cách nào để chuyển đổi màu RGB thành màu 8-bit khớp gần nhất?
@user JavaScript và C/C++ là các ngôn ngữ khác nhau. Rất hữu ích để có câu trả lời khác nhau từ cả hai. – cmac