Ubuntu Pastebin

Paste from tj at Wed, 21 Oct 2015 14:07:08 +0000

Download as text
 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
41
42
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");
  }
 }
}
Download as text