是否可以在位移位中仅位移一位?

时间:2018-11-24 19:48:10

标签: java bit-manipulation

我的问题是我是否只能切换 B6,B5 位来创建toUpper()函数,或者是否需要将这些位拆分为单独的部分

ASCII Bit representations 这种类型的移位示例为:

1000001至1100001 ( A a

2 个答案:

答案 0 :(得分:1)

您可以使用掩膜仅移动一位,但是有一种更简单的方法。

if ('a' <= ch && ch <= 'z')
    ch -= 'a' - 'A'; // subtract 32

答案 1 :(得分:0)

public static final int BIT5 = 0x20;

int A = 0b1000001;
int a = setBits(A, BIT5);

public static int setBits(int val, int bits) {
    return val | bits;
}

public static int clearBits(int val, int bits) {
    return val & ~bits;
}