按位运算 - 获取ASCII表中的下一个字符

时间:2013-12-02 11:50:48

标签: java ascii bit

如何编写一个程序,使用按位运算来获取ASCII表中的下一个值?

来自ASCII表的

Input:个字符 Output: ASCII表中的下一个字符。

例如,如果我输入'a'作为输入,程序应返回'b'。

如果输入'7',程序应返回'8'。等等...

4 个答案:

答案 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

中添加1
 ++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