2¹⁶-1 & 2⁵ = 2⁵ (หรือ? ชัด?)
ผู้พัฒนาถามฉันในวันนี้ 65535 & 32 bitwise คือ2¹⁶-1 & 2⁵ =? ตอนแรกฉันคิดว่าเป็นไปตามธรรมชาติ 32 แต่ดูเหมือนง่ายที่ฉันคิดว่าเป็นเวลาหลายนาทีแล้วตอบ 32. 32 ดูเหมือนจะเป็นคำตอบที่ถูกต้อง แต่อย่างไร 65535 = 2¹⁶-1 = 1111111111111111 (แต่มันดูไม่ถูกต้องเพราะเลขฐานสองนี้ทั้งหมดควรเป็น -1 (?)), 32 = 100,000 แต่ฉันไม่สามารถแปลงมันในหัวของฉันดังนั้นฉันตอบ 32 แล้วตั้งแต่ฉัน เพื่อตอบคำถาม คำตอบที่ 32 เป็นเรื่องจริงเล็กน้อย เป็นเช่นเดียวกัน 2 same-1 & 2 &-1 = 31 หรือไม่ ทำไมนักพัฒนาถึงถามฉันเกี่ยวกับ 65535
ไบนารีสิ่งที่ฉันถูกขอให้ประเมินคือ 1111111111111111 & 100000 แต่ฉันไม่เข้าใจว่าทำไม 1111111111111111 ไม่ใช่ -1 ไม่ควรเป็น -1 65535 เป็นตัวเลขที่ให้มากเกินและฉันจะรู้ได้อย่างไร