黑马程序员技术交流社区

标题: 字符数组没法使用异或进行位置置换? [打印本页]

作者: 史政法    时间: 2013-4-1 12:10
标题: 字符数组没法使用异或进行位置置换?
本帖最后由 史政法 于 2013-4-3 05:14 编辑
  1. public static void removie(char[] chr,int a ,int b)
  2.         {
  3.                 chr[a] = chr[a]^chr[b];
  4.                 chr[b] = chr[a]^chr[b];
  5.                 chr[a] = chr[a]^chr[b];
  6.         }

  7.         字符数组没法使用异或进行位置的置换?
复制代码
什么情况?

作者: 邵震    时间: 2013-4-1 12:25
应该是不行吧  因为字符对应的是编码表  系统应该不会让你这么做的
作者: 史政法    时间: 2013-4-1 18:51
没人知道吗?这个方法运行后是挂的。。。。。。WHY?
作者: hg3093483    时间: 2013-4-3 01:39
小弟认为,二进制 0 和1 的异或运算时可以进行真假判断,但是字符类型不是二进制啊,怎么能异或
作者: 史政法    时间: 2013-4-3 05:13
hg3093483 发表于 2013-4-3 01:39
小弟认为,二进制 0 和1 的异或运算时可以进行真假判断,但是字符类型不是二进制啊,怎么能异或 ...

BINGO,,,,,,,,,我真是个大脑残,,,,,,昨天突然才想到,异或是2位运算符,,,,,,,,,
作者: HM许涛    时间: 2013-4-18 12:18
史政法 发表于 2013-4-3 05:13
BINGO,,,,,,,,,我真是个大脑残,,,,,,昨天突然才想到,异或是2位运算符,,,,,,,,, ...

public static void removie(char[] chr,int a ,int b)
        {
                chr[a] = (char)(chr[a]^chr);
                chr = (char)(chr[a]^chr);
                chr[a] = (char)(chr[a]^chr);
        }
强转一下运行后的结果类型,否则无法赋值。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2