「JAVA置反」java就地逆置
本篇文章给大家谈谈JAVA置反,以及java就地逆置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
在Java中如何将数组中的数据倒置
最简单的算法就是设置一个临时变量,就像交换两个变量一样交换。更好的是使用链表,当然也可以使用ArrayCopy,Copy的时候把源数组最后一个赋给新数组的第一个,一个加,一个减。其他还有……
java程序关于字符串倒置
String类型对象的内容是不可以修改的,所以JAVA提供StringBuffer提供对字符串的修改操作。其成员方法reverse()提供对字符串的倒置功能。所以一般先将String类转化为StringBuffer类在做处理。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String inStr=scanner.nextLine();//标准输入字符串
StringBuffer reStr=new StringBuffer(inStr);//将String类型转化为StringBuffer类型
reStr.reverse();//StringBuffer类的成员方法reverse可以倒置字符串
inStr=reStr.toString();//转化为String类型
System.out.println("倒置后字符串为:"+inStr);
}
}
Java 取反运算符
用以下代码可以实现你要求的功能:
long lang=64509;
String str1=Long.toBinaryString(lang);//将给定的数转为二进制字串
String str2=Long.toBinaryString(~lang);//将给定的数取反转为二进制字串
//将取反后的二进制串取最后的 长度与第一个串长度相等 的子串,这是我们需要的二进制串
String str=str2.substring(str2.length()-str1.length());
//将它转换为十进制整数
int i=Integer.parseInt(str, 2);
System.out.println(i);
具体理论知识如下所示:
先要理解一些概念:
在2进制中,负数是以它正值的补码形式表达
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
比如 0000 0000 0000 0000 0000 0000 0000 0101是 5的 原码。
反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:将5的二进制表达式的每一位取反,得
1111 1111 1111 1111 1111 1111 1111 1010
称:1111 1111 1111 1111 1111 1111 1111 1010 是 0000 0000 0000 0000 0000 0000 0000 0101 的反码。
反码是相互的,所以也可称:
1111 1111 1111 1111 1111 1111 1111 1010 和 0000 0000 0000 0000 0000 0000 0000 0101 互为反码。
补码:反码加1称为补码。
也就是说,要得到一个数的补码,先得到反码,然后将反码加上1,所得数称为补码。
那么,5的补码为:
1111 1111 1111 1111 1111 1111 1111 1010 + 1 =
1111 1111 1111 1111 1111 1111 1111 1011
所以,-5 在计算机中的二进制表达为:
1111 1111 1111 1111 1111 1111 1111 1011
转换为十六进制:0xFFFFFFFB。
====================================
明白了上面的就可以理解怎么求 ~i 了
int型储存32个二进制位,~这个符号是按位取反,就是求i的反码。
即得到1111 1111 1111 1111 1111 1111 1111 1010
上面这串二进制代表一个负数,将它转换成int型过程如下:
1111 1111 1111 1111 1111 1111 1111 1010-1 =
1111 1111 1111 1111 1111 1111 1111 1001
再求反:
0000 0000 0000 0000 0000 0000 0000 0110
这个值就是5的按位取反所得到的int整数的绝对值(注意:5按位取反得到的是负数)
所以转换为int型为:6
即:int型的i=5 取反后的结果为-6
JAVA置反的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java就地逆置、JAVA置反的信息别忘了在本站进行查找喔。
发布于:2022-11-26,除非注明,否则均为
原创文章,转载请注明出处。