如何编写一个程序,使用按位运算来获取ASCII表中的下一个值?
来自ASCII表的 Input:
个字符
Output:
ASCII表中的下一个字符。
例如,如果我输入'a'作为输入,程序应返回'b'。
如果输入'7',程序应返回'8'。等等...
答案 0 :(得分:6)
只需添加1(字符可以视为int16):
char value = 'a';
char next = (char) (value + 1); // <- next == 'b'
答案 1 :(得分:0)
仅增加1。
Input = 'a';
Output = ++Input;
答案 2 :(得分:0)
很简单。只需将您的char转换为int。
char character = 'a';
int ascii = (int) character;
然后您需要在ascii
++ascii;
并将其转换回来......
char c=(char)ascii ;
System.out.println(c);
答案 3 :(得分:0)
这是一个只使用逐位函数将其参数加1的方法。
public void test() {
String s = "Hello";
StringBuilder t = new StringBuilder(s.length());
for (int i = 0; i < s.length(); i++) {
t.append((char) inc(s.charAt(i)));
}
System.out.println(s);
System.out.println(t.toString());
}
private int inc(int x) {
// Check each bit
for (int i = 0; i < Integer.SIZE; i++) {
// Examine that bit
int bit = 1 << i;
// If it is zero
if ((x & bit) == 0) {
// Set it to 1
x |= bit;
// And stop the loop - we have added one.
break;
} else {
// Clear it.
x &= ~bit;
}
}
return x;
}
打印
Hello
Ifmmp