Giá trị đầu tiên:Tìm tất cả các giá trị 2 bit khớp với một mẫu nhị phân khác rồi tổng hợp chúng
Tôi có một giá trị nhị phân thực sự là một chuỗi giá trị 2 bit nhỏ gọn. (Tức là, mỗi 2 bit trong giá trị nhị phân đại diện cho 0, 1, 2, hoặc 3.) Vì vậy, ví dụ, 0, 3, 1, 2 trở thành 00110110. Trong chuỗi nhị phân này, tất cả những gì tôi quan tâm là số 3 (hoặc luân phiên, tôi có thể lật các bit và chỉ quan tâm đến số 0, nếu điều đó làm cho câu trả lời của bạn dễ dàng hơn). Tất cả các số khác không liên quan (vì lý do chúng ta sẽ đi vào trong một chút).
Giá trị thứ hai:
Tôi có một giá trị nhị phân thứ hai cũng là một loạt đầm giá trị 2-bit đại diện theo cùng một cách. Nó có chiều dài giống hệt với Giá trị đầu tiên.
Math:
Tôi muốn tổng các số 2-bit trong giá trị thứ hai có vị trí giống như một 3 từ giá trị đầu tiên. Nói cách khác, nếu tôi có:
First: 11000011
Second: 01111101
Sau đó, câu trả lời của tôi sẽ là "2" (tôi đã thêm số đầu tiên và số cuối cùng từ "thứ hai" với nhau, bởi vì đó là những những người duy nhất có một "11 "trong Giá trị Đầu tiên khớp với chúng.)
Tôi muốn thực hiện việc này trong vài chu kỳ đồng hồ nhất có thể (trên GPU hoặc trên kiến trúc x86). Tuy nhiên, tôi thường tìm kiếm một thuật toán, không phải là một giải pháp lắp ráp. Có cách nào nhanh hơn che giấu hai bit tại một thời điểm từ mỗi số và chạy một số vòng?
Ý của bạn là '3' thay vì '4' cho 11? –
Có, tôi đã làm, cảm ơn! :-) –