交换两个变量的值不使用第三个变量(Java)
关于这个问题网上有好多答案,最近有人说这是个奇葩问题
个人测试了一把,如果是普通的数字的话,基本上没有问题
public static void main(String[] args) {
int a = 2147483647;
int b = 2147483646;
// a=a+b;
// b=a-b;
// a=a-b;
// b = a + (a = b) * 0;
// a = a * b;
//
// b = a / b;
//
// a = a / b;
a ^=b;
b ^=a;
a ^=b;
System.out.println(a + "," + b);
}
试了试,只用下面这种方式会 得出 -1 的结果
a = a * b;
b = a / b;
a = a / b;
2147483646,-1
交换两个变量的值不使用第三个变量(Java)的更多相关文章
- 面试题:如何在不使用临时变量temp的情况下交换两个整数的值?
利用一个小技巧,一个整数a在异或另一个整数b两次以后所得的值还是整数a. 具体的过程我们可以自己找两个整数以二进制的形式自己在纸上画一下他们的异或过程.(异或的运算符号为"^") ...
- Java反射交换两个整型变量的值
在一次面试中,做了这么一道题"交换两个整型变量的值",当时看到这个题目之后,会心一笑,这也太简单了--直接使用中间变量交换不就可以了吗?但是,面试官却说不需要返回值,在调用的地方, ...
- UPDATE从左向右,变量优先,逐行更新.顺序执行的,可以交换两列之间的值
CREATE TABLE tab_update (id TINYINT,n1 NVARCHAR(30),v1 NVARCHAR(30),s1 NVARCHAR(30)) INSERT INTO tab ...
- JS的变量的值怎么传递给PHP的变量?
get: <script> name="xxx"; window.location='xxx.php? name='+name; post: <script> ...
- shell使用变量的值,获取一个新的变量名的值
[root@localhost ~]# cat s2.sh #!/bin/bash color_name="red" red=31 color=`eval echo '$'&quo ...
- Azure Bicep(三)变量控制
一,引言 当我们在使用 Azure Bicep 的时候会出现以下几个问题: 1)文件中有很多地方会重用很多相同的值 2)输入参数可以在统一的地方进行修改 带着这些问题,我们开始今天的内容,学习如何在 ...
- Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?
从接触 Python 时起,我就觉得 Python 的元组解包(unpacking)挺有意思,非常简洁好用. 最显而易见的例子就是多重赋值,即在一条语句中同时给多个变量赋值: >>> ...
- java:关于继承变量的值问题
1.在java中,如果子类继承父类的静态变量时,当你在子类面前修改这个静态变量的值,其父类的静态变量也会改变. 案例: //父类public class Animal { //静态属性 public ...
- iOS Block不能修改外部变量的值
__block int a = 0; void (^foo)(void) = ^{ a = 1; }; Block不允许修改外部变量的值.Apple这样设计,应该是考虑到了block的特殊性,bloc ...
随机推荐
- NOIP2018提高组模拟题(二)
咒语(curse) Description 亮亮梦到自己来到了魔法城堡,但一扇巨大的石门阻拦了他通向城堡内的路. 正当他沮丧之际,突然发现门上有一处机关,机关上有一张很长的纸条. 亮亮拿起纸条的一端, ...
- SQL常用语句|创建表,设置主键......
新建表 create table [表名]([自动编号字段] int IDENTITY (1,1) PRIMARY KEY ,[字段1] nVarChar(50) default \'默认值\' nu ...
- 1.12(java学习笔记)多态及向上、向下转型
一.多态 多态是指同一个方法被调用,由于对象不同导致行为不同. 例如调用自由活动方法,张三喜欢玩耍,那么他就会去玩耍. 李四喜欢学习,那么他可能去学习.调用方法因对象的不同 而产生了不同的行为. 形成 ...
- MySQL中in子查询会导致无法使用索引问题(转)
MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...
- linux之ssh无密码访问
1. windows下用putty执行ssh连接vmware中的linux虚拟机 linux虚拟机的网络选择bridge模式,ifconfig 看到ip后与windows local machine之 ...
- RTU模式与ASCII模式有什么不同
所有设备必须必须实现 RTU 模式.ASCII 传输模式是选项,即默认设置必须为 RTU 模式. 当设备使用RTU (Remote Terminal Unit) 模式在 Modbus 串行链路通信, ...
- 用DVD镜像离线安装Debian的软件包
先介绍一下环境: 虚拟机:debian7.2.0 主机: Win7 方法一: 由于有时候无法联网就需要离线安装软件包,可以把debian官网上列出的几个DVD镜像都下下来,其实主要是DVD1,这样就不 ...
- vue中自定义指令vue.direvtive,自定义过滤器vue.filter(),vue过渡transition
自定义指令 默认设置的核心指令( v-model,v-bind,v-for,v-if,v-on等 ),Vue 也允许注册自定义指令.注意,在 Vue2.0 里面,代码复用的主要形式和抽象是组件——然而 ...
- git reset revert区别
git revert HEAD~1 撤销倒数第二次提交,并将这次操作作为一个新提交添加到log里,之前的提交历史不变,是撤销某次提交 git reset,直接回退到指定版本 git reset --s ...
- Maven配置Spring+Hibernate Shiro权限控制项目
前言:在Eclipse中安装好Maven插件,然后创建一个Sample项目.在Eclipse中检出Shiro的官方演示样例.地址http://svn.apache.org/repos/asf/shir ...