Nếu tôi có một bitmask cơ bản ...bitmask: làm thế nào để xác định nếu chỉ có một bit được thiết lập
cat = 0x1;
dog = 0x2;
chicken = 0x4;
cow = 0x8;
// OMD has a chicken and a cow
onTheFarm = 0x12;
... làm thế nào tôi có thể kiểm tra nếu chỉ có một động vật (ví dụ: một bit) được thiết lập?
Giá trị của onTheFarm
phải là 2 n, nhưng làm cách nào tôi có thể kiểm tra xem chương trình đó (tốt nhất là trong Javascript)?
Khám phá [câu hỏi này] (http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer). Không phải là javascript cụ thể, nhưng thú vị. –
Cảm ơn Rob, chỉ tìm thấy điều này (có vẻ nhanh hơn một chút) http://stackoverflow.com/questions/1053582/how-does-this-bitwise-operation-check-for-a-power-of-2 – Tim
Chỉ cần FYI, 'OMD' = [' Old MacDonald'] (https://en.wikipedia.org/wiki/Old_MacDonald_Had_a_Farm). – rvighne