import java.lang.String;
import java.lang.Long;
import java.lang.Math;
// 1234567890(decimal) to 100100100101100000001011010010 to 1001000000000000000000000000010000000101101001000000001100101 to 1200000080B48065(hex)
public class NfcRaw {
public static void
main(String[] argv)
{
if (argv.length > 0) {
long input = Long.parseLong(argv[0]);
long nfc_data = 0;
nfc_data |= (input & 0x0000000003FC0000L) >> 18 << 56;
nfc_data |= (input & 0x000000000003FC00L) >> 10 << 48;
nfc_data |= (input & 0x00000000000003FCL) >> 2 << 32;
nfc_data |= (input & 0x0000000000000003L) >> 0 << 24;
nfc_data |= (input & 0x0003FC0000000000L) >> 42 << 16;
nfc_data |= (input & 0x000003FC00000000L) >> 34 << 8;
nfc_data |= (input & 0x00000003FC000000L) >> 26 << 0;
long result = 0;
long byte_mask = 0, bit_mask = 0;
long temp = 0;
for (int BYTE_OFFSET = 56; BYTE_OFFSET > 0; BYTE_OFFSET -= 8) {
for (int bit = 0; bit < 8; ++bit) {
byte_mask = 0xffL << BYTE_OFFSET;
temp = (nfc_data & byte_mask) >> BYTE_OFFSET;
bit_mask = (long)Math.pow(2.0, bit);
result |= (temp & bit_mask) << (7-bit) << BYTE_OFFSET;
// System.out.format("%02d %02d %016x %016x %016x %016x %016x\n", BYTE_OFFSET, bit, nfc_data, byte_mask, bit_mask, temp, result);
}
}
System.out.println(" 1 1 0 0XX 4 3 2");
System.out.println(" 8 0 2 0XX 2 4 6");
System.out.format("%016x\n", result);
} else {
System.out.println("usage: decimal");
}
}
}