#include <iostream> #include <cstdio> #include <cstdlib> using namespace std; int T, t; unsigned int n, sgn, m; unsigned int inf; int exp; /* 0 4(4) 200000 1 80000 80000000 80(128) fffffe 2 FF800000 80000000 84(132) 1fffff 3 FF800000 80000000 ffffff20(-224) 888888 4 FF800000 */ int main() { scanf("%d", &T); inf = 255u << 23; for (; T; -- T) { scanf("%d %x", &t, &n); sgn = n & (1u << 31); exp = (n >> 24) & 127u; exp = (exp - 64) * 4 - 1; m = n & ((1u << 24) - 1); //printf("%x %x(%d) %x\n", sgn, exp, exp, m); if (m == 0) { printf("%d %08X\n", t, sgn); continue; } while ((m & (1u << 23)) == 0) { m <<= 1; -- exp; } //printf("%x %x(%d) %x\n", sgn, exp, exp, m); if (exp >= 128) { printf("%d %08X\n", t, sgn + inf); continue; } if (exp <= -127) { //printf("?%d %08X\n", exp, m); exp += 126; /*exp = -33; printf("?%d %08X\n", -exp, (m >> (-exp)));*/ if (exp < -24) m = 0; else m >>= -exp; //printf("?%d %08X\n", -exp, m); printf("%d %08X\n", t, sgn + m); continue; } exp += 127; //printf("%X\n", (exp << 23)); printf("%d %08X\n", t, sgn + (exp << 23) + (m & ((1u << 23) - 1))); } return 0; }