按位“和”操作进入kotlin
如果负数是从-31到-1,那么我想将其表示为111XXXXX格式。 我尝试使用“和”按位运算符:
println("0b00011111 & 0xe0 is ${0b00011111 and 0xe0}") println("31 & 0xe0 is ${31 and 0xe0}") println("0b00011111 & 0b11100000 is ${0b00011111 and 0b11100000}")
但是结果总是0.我犯了什么错误?
它打印0因为00011111 and 11100000
总是返回0
。 和的返回类型是Int
,所以如果你想用前导零来打印它,你必须格式化它。
要将其转换为基数为2的String
,可以调用Integer.toString
:
val numberString = Integer.toString(0b00011111 and 0b11100000, 2);
这将给你二进制格式的数字,但没有前导零。 你需要用零填充来获得你想要的格式。 我把这个任务交给你(提示: padStart
);)