#include <stdio.h>
#define GETBITSTATE(state, i) (!!((0x80 >> (i & 7)) & state[i >> 3]))
int getBitState(unsigned char* state, int i) //
{
return !!((0x80 >> (i & 7)) & state[i >> 3]);
}
void subBytes(unsigned char* state) {
int i;
for(i = 0; i<=127; i++) {
printf("%d",getBitState
(state
, i
));
else if(i
%8==7) {printf(",");} }
for(i = 0; i<=127; i++) {
printf("%d",GETBITSTATE
(state
, i
));
else if(i
%8==7) {printf(",");} }
}
int main()
{
unsigned char derp[16] = {50, 67, 246, 168,
136, 90, 48, 141,
49, 49, 152, 162,
224, 55, 7, 52 };
subBytes(derp);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIEdFVEJJVFNUQVRFKHN0YXRlLCBpKSAoISEoKDB4ODAgPj4gKGkgJiA3KSkgJiBzdGF0ZVtpID4+IDNdKSkKCmludCBnZXRCaXRTdGF0ZSh1bnNpZ25lZCBjaGFyKiBzdGF0ZSwgaW50IGkpIC8vCnsKICAgIHJldHVybiAhISgoMHg4MCA+PiAoaSAmIDcpKSAmIHN0YXRlW2kgPj4gM10pOwp9Cgp2b2lkIHN1YkJ5dGVzKHVuc2lnbmVkIGNoYXIqIHN0YXRlKSB7CiAgICBpbnQgaTsKICAgIHByaW50ZigiVXNpbmcgZnVuY3Rpb246XG4iKTsKICAgIGZvcihpID0gMDsgaTw9MTI3OyBpKyspIHsKCiAgICAgICAgcHJpbnRmKCIlZCIsZ2V0Qml0U3RhdGUoc3RhdGUsIGkpKTsKCiAgICAgICAgaWYoaSUzMj09MzEpe3ByaW50ZigiXG4iKTt9CiAgICAgICAgZWxzZSBpZihpJTg9PTcpIHtwcmludGYoIiwiKTt9CiAgICB9CiAgICBwcmludGYoIlVzaW5nIG1hY3JvOlxuIik7CiAgICBmb3IoaSA9IDA7IGk8PTEyNzsgaSsrKSB7CgogICAgICAgIHByaW50ZigiJWQiLEdFVEJJVFNUQVRFKHN0YXRlLCBpKSk7CgogICAgICAgIGlmKGklMzI9PTMxKXtwcmludGYoIlxuIik7fQogICAgICAgIGVsc2UgaWYoaSU4PT03KSB7cHJpbnRmKCIsIik7fQogICAgfQogICAgcHJpbnRmKCJcbiIpOwp9CgppbnQgbWFpbigpCnsKICAgIHVuc2lnbmVkIGNoYXIgZGVycFsxNl0gPSB7NTAsICA2NywgMjQ2LCAxNjgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzNiwgOTAsIDQ4LCAgMTQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OSwgIDQ5LCAxNTIsIDE2MiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjI0LCA1NSwgNywgICA1MiAgfTsKICAgIAogICAgc3ViQnl0ZXMoZGVycCk7CiAgICByZXR1cm4gMDsKfQ==
Using function:
00110010,01000011,11110110,10101000
10001000,01011010,00110000,10001101
00110001,00110001,10011000,10100010
11100000,00110111,00000111,00110100
Using macro:
00110010,01000011,11110110,10101000
10001000,01011010,00110000,10001101
00110001,00110001,10011000,10100010
11100000,00110111,00000111,00110100