按位“和”操作进入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 );)