首页编程java编程java中交换数用什么 交换两个数的值(用JAVA编写)

java中交换数用什么 交换两个数的值(用JAVA编写)

编程之家2023-10-1187次浏览

本篇文章给大家谈谈java中交换数用什么,以及交换两个数的值(用JAVA编写)对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

java中交换数用什么 交换两个数的值(用JAVA编写)

如何在Java中实现交换两个变量值的方法

通过异或实现(异或符号为^)

关于^:

异或的运算法则,相当于不带进位的二进制加法。二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

java中交换数用什么 交换两个数的值(用JAVA编写)

第一个数符号第二个数结果

0 ^ 0 0

0 ^ 1 1

java中交换数用什么 交换两个数的值(用JAVA编写)

1 ^ 0 1

1 ^ 1 0

如:

num1= 5,对应的二进制为(101); num2= 7,对应的二进制为(111);

num1=num1^num2=2;即二的平方位1^1=0,二的一次方位0^1=1,二的0次方位1^1=0;得到(010)即为2。

num2= num1 ^ num2=5;相当于num2=num1^num2^num2;二的平方位1^1^1=1(此处无论num2的二的平方位是0还是1,异或运算后都为0,故得到的肯定与原num1的二的平方位相同,同理其他位置全部也都是原num1的数);二的一次方位0^1^1=0;二的0次方位1^1^1=1.;得到(101)即为5.

num1= num1^num2=7;相当于num1= num1^num2^num1^num2^num2=num2=7.

此方法同样实现了两个数互换。

关于java中使用位运算的方式进行数据的交换

因为float和double为浮点类型,

故可进行位运算的数据类型包括byte、char、short、int和long

由于数据类型所占字节是有限的,而位移的大小却可以任意大小,所以可能存在位移后超过了该数据类型的表示范围,于是有了这样的规定:

如果为int数据类型,且位移位数大于32位,则首先把位移位数对32取模,不然位移超过总位数没意义的。所以4>>32与4>>0是等价的。

如果为long类型,且位移位数大于64位,则首先把位移位数对64取模,若没超过64位则不用对位数取模。

如果为byte、char、short,则会首先将他们扩充到32位,然后的规则就按照int类型来处理。

double类型会存在精度问题,先取整转化

java 使用什么字符集是什么

Java语言所使用的字符集是16位Unicode编码。另外再介绍一些常见的字符集:

1、最早在dos下写pascal的时候,就遇到ASCII字符集,后来还是dos下写c,也是ascii字符集

特点:目前最通用的单字节编码字符集

表示:单字节

最早ascii用7bit表示,总共能表示2^7=128个字符,后来扩展到8bit,就表示2^8=256个字符

2、GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。

特点:当然是能表示99%的中国汉字,还包括拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母等

表示:双字节

3、GBK是汉字编码标准之一,全称《汉字内码扩展规范》,GBK向下与GB2312编码兼容,向上支持ISO10646.1国际标准。可以认为GBK是在GB2313基础上通过内码扩展出来的一个标准。

特点:完全兼容GB2312标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字

表示:双字节

4、Big5,台湾那边使用比较多。

5、GB 18030,全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。

特点:就是强大。覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。

表示:单字节、双字节、四字节三种方式

6、Unicode野心更大(当然有一个国际统一标准当然是好事)

特点:Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

表示:utf-8,utf-16,utf-32

这里可能有点不好理解,举个例子

首先,把unicode理解成对所有字符做了一个统一的编号,比如:“字”这个字符,编号是23383,这个是unicode定义的

但是,在计算机中,如何存储这个编号呢?方式就有很多,存储unicode的方式,就是utf-8,utf-16,utf-32

23383数值的16进制表示:0x5b57

utf-8用3个字节来表示汉字,所以utf-8的表示为:0xE5AD97

utf-16用2个字节来表示汉字,所以utf-16的表示为:0x5b57刚好和数值是一样的

utf-32用4个字节来表示汉字,所以utf-32的表示为:0x00005b57和数值是一样的,不过浪费空间

7、再来讲讲utf-8,它是一种变长的字符集

表示:单字节来表示字母,双字节来表示一些希腊字母,三字节来表示汉字,当然也有四字节的

这么做当然会增加表示和识别的难度,不过,可以节省空间。这也是为什么utf-8在网络编码中流行的原因。

交换两个数的值(用JAVA编写)

java默认的都是值传递,你直接用change(int a,int b)的话,当你的程序去调用这个方法的时候,在方法体内部仅仅只是将你现在的A和B的值赋给了方法体中a和b,就相当于一个变量的FB,他仅仅只是在方法体内部互换了值,其本身并没有换掉,你可以看下java的值传递和引用传递,你就可以明白为什么了。

文章分享结束,java中交换数用什么和交换两个数的值(用JAVA编写)的答案你都知道了吗?欢迎再次光临本站哦!

经典文艺片(国产经典文艺片)java面试什么是ioc 求大神,java中IOC具体是个什么意思