#include <stdio.h>
#include <stdlib.h>
int main(void) {
const int arr[7] = {0x80000000u, -2, -1, 0, 1, 2, 0x7fffffffu};
unsigned int i, j, signVal, uiSiz;
uiSiz = sizeof(unsigned int);
for (i = 0, j = 7; i < 7; i++) {
signVal = ((unsigned int) arr[i] & (0x1u << ((8 * uiSiz) - 1))) >> ((8 * uiSiz) - 1);
fprintf(stdout
, "arr[%u]: %i, uiSiz: %u, signVal: %u;\n", i
, arr
[i
], uiSiz
, signVal
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCmludCBtYWluKHZvaWQpIHsKCWNvbnN0IGludCBhcnJbN10gPSB7MHg4MDAwMDAwMHUsIC0yLCAtMSwgMCwgMSwgMiwgMHg3ZmZmZmZmZnV9OwoJdW5zaWduZWQgaW50IGksIGosIHNpZ25WYWwsIHVpU2l6OwoJCgl1aVNpeiA9IHNpemVvZih1bnNpZ25lZCBpbnQpOwoJCglmb3IgKGkgPSAwLCBqID0gNzsgaSA8IDc7IGkrKykgewoJCXNpZ25WYWwgPSAoKHVuc2lnbmVkIGludCkgYXJyW2ldICYgKDB4MXUgPDwgKCg4ICogdWlTaXopIC0gMSkpKSA+PiAoKDggKiB1aVNpeikgLSAxKTsKCQlmcHJpbnRmKHN0ZG91dCwgImFyclsldV06ICVpLCB1aVNpejogJXUsIHNpZ25WYWw6ICV1O1xuIiwgaSwgYXJyW2ldLCB1aVNpeiwgc2lnblZhbCk7Cgl9CgkKCXJldHVybiAwOwp9Cg==
arr[0]: -2147483648, uiSiz: 4, signVal: 1;
arr[1]: -2, uiSiz: 4, signVal: 1;
arr[2]: -1, uiSiz: 4, signVal: 1;
arr[3]: 0, uiSiz: 4, signVal: 0;
arr[4]: 1, uiSiz: 4, signVal: 0;
arr[5]: 2, uiSiz: 4, signVal: 0;
arr[6]: 2147483647, uiSiz: 4, signVal: 0;