1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <limits.h> #include <assert.h> #include <stdio.h> unsigned pad(unsigned pattern, unsigned patternLen, unsigned leftBit, unsigned leftBitCnt, unsigned rightBit, unsigned rightBitCnt) { unsigned r; assert(leftBitCnt < sizeof(unsigned) * CHAR_BIT); assert(rightBitCnt < sizeof(unsigned) * CHAR_BIT); assert(patternLen < sizeof(unsigned) * CHAR_BIT); assert(leftBitCnt + patternLen + rightBitCnt <= sizeof(unsigned) * CHAR_BIT); r = (leftBit << leftBitCnt) - leftBit; r <<= patternLen; r |= pattern; r <<= rightBitCnt; r |= (rightBit << rightBitCnt) - rightBit; return r; } void printBin(unsigned x) { unsigned i; for (i = 0; i < sizeof(unsigned) * CHAR_BIT; i++) printf("%u", (x >> (sizeof(unsigned) * CHAR_BIT - 1 - i)) & 1); printf("\n"); } int main(void) { printBin(pad(0x0F0, 12, 0, 2, 0, 2)); printBin(pad(0x0F0, 12, 0, 2, 1, 2)); printBin(pad(0x0F0, 12, 1, 2, 0, 2)); printBin(pad(0x0F0, 12, 1, 2, 1, 2)); return 0; } |
I2luY2x1ZGUgPGxpbWl0cy5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgoKdW5zaWduZWQgcGFkKHVuc2lnbmVkIHBhdHRlcm4sIHVuc2lnbmVkIHBhdHRlcm5MZW4sCiAgICAgICAgICAgICB1bnNpZ25lZCBsZWZ0Qml0LCB1bnNpZ25lZCBsZWZ0Qml0Q250LAogICAgICAgICAgICAgdW5zaWduZWQgcmlnaHRCaXQsIHVuc2lnbmVkIHJpZ2h0Qml0Q250KQp7CiAgdW5zaWduZWQgcjsKICBhc3NlcnQobGVmdEJpdENudCA8IHNpemVvZih1bnNpZ25lZCkgKiBDSEFSX0JJVCk7CiAgYXNzZXJ0KHJpZ2h0Qml0Q250IDwgc2l6ZW9mKHVuc2lnbmVkKSAqIENIQVJfQklUKTsKICBhc3NlcnQocGF0dGVybkxlbiA8IHNpemVvZih1bnNpZ25lZCkgKiBDSEFSX0JJVCk7CiAgYXNzZXJ0KGxlZnRCaXRDbnQgKyBwYXR0ZXJuTGVuICsgcmlnaHRCaXRDbnQgPD0gc2l6ZW9mKHVuc2lnbmVkKSAqIENIQVJfQklUKTsKCiAgciA9IChsZWZ0Qml0IDw8IGxlZnRCaXRDbnQpIC0gbGVmdEJpdDsKICByIDw8PSBwYXR0ZXJuTGVuOwogIHIgfD0gcGF0dGVybjsKICByIDw8PSByaWdodEJpdENudDsKICByIHw9IChyaWdodEJpdCA8PCByaWdodEJpdENudCkgLSByaWdodEJpdDsKCiAgcmV0dXJuIHI7Cn0KCnZvaWQgcHJpbnRCaW4odW5zaWduZWQgeCkKewogIHVuc2lnbmVkIGk7CiAgZm9yIChpID0gMDsgaSA8IHNpemVvZih1bnNpZ25lZCkgKiBDSEFSX0JJVDsgaSsrKQogICAgcHJpbnRmKCIldSIsICh4ID4+IChzaXplb2YodW5zaWduZWQpICogQ0hBUl9CSVQgLSAxIC0gaSkpICYgMSk7CiAgcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgcHJpbnRCaW4ocGFkKDB4MEYwLCAxMiwgMCwgMiwgMCwgMikpOwogIHByaW50QmluKHBhZCgweDBGMCwgMTIsIDAsIDIsIDEsIDIpKTsKICBwcmludEJpbihwYWQoMHgwRjAsIDEyLCAxLCAyLCAwLCAyKSk7CiAgcHJpbnRCaW4ocGFkKDB4MEYwLCAxMiwgMSwgMiwgMSwgMikpOwogIHJldHVybiAwOwp9Cg==
-
upload with new input
-
result: Success time: 0.02s memory: 1676 kB returned value: 0
00000000000000000000001111000000 00000000000000000000001111000011 00000000000000001100001111000000 00000000000000001100001111000011


