二进制:101110
异或后010001
主要代码:
- int i = 109;
- i = ~i;
- i = i < 0 ? i * -1 : i;
- i = 255 - i + 1;
-
- List<Integer> list=new ArrayList<>();
- list.add(100011);
- list.add(11010110);
- list.add(10100100);
- list.add(100110);
- list.add(11000101);
- list.add(11011110);
-
- //异或 0变1 ,1变0
- List<Integer> getTurn(List<String> list) {
-
- List<Integer> mlist = new ArrayList<>();
-
- for (int i = 0; i < list.size(); i++) {
- int b = ByteUtils.binaryIntToDecimalism(list.get(i));
- b = ~b;
- b = b < 0 ? b * -1 : b;
- b = 255 - b + 1;
- mlist.add(b);
- }
- return mlist;
- }
- /**
- * 将二进制整数部分转换成十进制
- *
- * @param inteter 二进制整数部分字符串
- * @return 转换后的十进制数值
- */
- public static int binaryIntToDecimalism(String inteter) {
- int inteterSum = 0;
- for (int i = inteter.length(); i > 0; i--) {
- int scale = 2;
- if (inteter.charAt(-(i - inteter.length())) == '1') {
- if (i != 1) {
- for (int j = 1; j < i - 1; j++) {
- scale *= 2;
- }
- } else {
- scale = 1;
- }
- } else {
- scale = 0;
- }
- inteterSum += scale;
- }
- return inteterSum;
- }
通过上面代码 异或后 ,在转换成二进制就:0变1 ,1变0