进制表示
kotlin不支持表示8进制。
二进制
0b1101
十六进制å
0xd
运算
与 1001 & 1101 -> 1001
(0b1001 and 0b1101).toString(2) // 或者 0b1001.and(0b1101).toString(2)
或 1001 | 1101 -> 1101
(0b1001 or 0b1101).toString(2) // 或者 0b1001.or(0b1101).toString(2)
异或 1001 ^ 1101 -> 0100
(0b1001 xor 0b1101).toString(2) // 或者 0b1001.xor(0b1101).toString(2)
左移 1001 << 1 -> 10010
(0b1001 shl 1).toString(2) // 或者 0b1001.shl(1).toString(2)
右移 1001 >> 1 -> 0100
(0b1001 shr 1).toString(2) // 或者 0b1001.shr(1).toString(2)
无符号右移 1001 >>> 1 -> 0100
(0b1001 ushr 1).toString(2) // 或者 0b1001.ushr(1).toString(2)
十进制
十进制转2进制 13->1101
13.toString(2) // 或者 Integer.toBinaryString(13)
十进制转8进制 13->15
13.toString(8) // 或者 Integer.toOctalString(13)
十进制转16进制 13->d
13.toString(16) // 或者 Integer.toHexString(13)
二进制
2进制转8进制 1101->13->15
// 先转10进制再转8进制 "1101".toInt(2).toString(8)
2进制转10进制 1101->13
"1101".toInt(2) // 或者 Integer.valueOf("1101",2)
2进制转16进制 1101->13->d
// 先转10进制再转16进制 "1101".toInt(2).toString(16)
八进制
8进制转2进制 15->13->1101
// 先转10进制再转2进制 "15".toInt(8).toString(2)
8进制转10进制 15->13
"15".toInt(8) // 或者 Integer.valueOf("15",8)
8进制转16进制 15->13->d
// 先转10进制再转16进制 "15".toInt(8).toString(16)
十六进制
16进制转2进制 d->13->1101
// 先转10进制再转2进制 "d".toInt(16).toString(2)
16进制转8进制 d->13->15
// 先转10进制再转8进制 "d".toInt(16).toString(8)
16进制转10进制 d->13
"d".toInt(16) // 或者 Integer.valueOf("d",16)