บิดไบนารีอธิบายโดยตัวเลขและถูกนำไปใช้เป็นจำนวนมากM
N
สำหรับแต่ละบิตในการแทนค่าไบนารี่ของM
ถ้าบิตถูกตั้งค่า ( 1
) บิตที่สอดคล้องกันในเอาต์พุตจะถูกกำหนดโดย XOR โดยสองบิตที่อยู่ติดกับบิตที่สอดคล้องกันในN
(ล้อมรอบเมื่อจำเป็น) หากบิตไม่ได้ตั้งค่า ( 0
) N
แล้วบิตที่สอดคล้องกันในการส่งออกจะได้รับจากบิตที่สอดคล้องกันใน
ตัวอย่างการทำงาน (ที่มีค่า 8 บิต):
- อนุญาต
N = 150
,M = 59
. respresentations ไบนารีของพวกเขา (ตามลำดับ) และ10010110
00111011
- ขึ้นอยู่กับการ
M
เป็นตัวแทนไบนารีของบิต 0, 1, 3, 4 และ 5 มีการ convolved- ผลการบิต 0 จะได้รับโดย XORing บิต 1 และ 7 (เนื่องจากเราห่อรอบ)
1
ยอม - ผลสำหรับบิต 1 จะได้รับโดย XORing บิต 0 และ 2
0
ให้ผลผลิต - ผลสำหรับบิตที่ 2 จะได้รับจากบิตเดิม 2
1
ยอม - ผลสำหรับบิต 3 จะได้รับโดย XORing บิต 2 และ 4
0
ยอม - ผลสำหรับบิต 4 จะได้รับโดย XORing บิต 3 และ 5
0
ยอม - ผลสำหรับบิต 5 จะได้รับโดย XORing บิต 4 และ 6
1
ยอม - ผลบิตที่ 6 และ 7 จะได้รับจากบิตเดิมที่ 6 และ 7 ผลผลิตและ
0
1
- ผลการบิต 0 จะได้รับโดย XORing บิต 1 และ 7 (เนื่องจากเราห่อรอบ)
- ผลลัพธ์คือ
10100110
(166
)
ความท้าทาย
ได้รับN
และM
การส่งออกผลมาจากการดำเนินการบิดไบนารีอธิบายโดยเมื่อM
N
อินพุตและเอาต์พุตอาจอยู่ในรูปแบบที่สะดวกสอดคล้องและไม่คลุมเครือ N
และM
จะอยู่ในช่วง (รวม) [0, 255]
(เลขจำนวนเต็ม 8 บิตที่ไม่ได้ลงชื่อ) และการแทนเลขฐานสองของพวกเขาควรจะเพิ่มเป็น 8 บิตสำหรับการดำเนินการแปลงแบบไบนารี
กรณีทดสอบ
150 59 -> 166
242 209 -> 178
1 17 -> 0
189 139 -> 181
215 104 -> 215
79 214 -> 25
190 207 -> 50
61 139 -> 180
140 110 -> 206
252 115 -> 143
83 76 -> 31
244 25 -> 245
24 124 -> 60
180 41 -> 181
105 239 -> 102
215 125 -> 198
49 183 -> 178
183 158 -> 181
158 55 -> 186
215 117 -> 198
255 12 -> 243