当前位置: 首页 > 面试题库 >

Java长时间存储两个整数

宋航
2023-03-14
问题内容

我想长时间存储两个整数(而不是Point每次都必须创建一个新对象)。

目前,我已经尝试过了。它不起作用,但是我不知道这是怎么回事:

// x and y are ints
long l = x;
l = (l << 32) | y;

我得到这样的int值:

x = (int) l >> 32;
y = (int) l & 0xffffffff;

问题答案:

y在第一个代码段中正进行符号扩展,这会x-1任何时候被覆盖y < 0

在第二个代码段中,对的强制转换int在转换之前完成,因此x实际上获得的值y

long l = (((long)x) << 32) | (y & 0xffffffffL);
int x = (int)(l >> 32);
int y = (int)l;


 类似资料:
  • 我解决了一个编程问题,如果有两个数字A和B,我必须在乘积的二进制形式中找到1的个数。A和B的范围是[0,10^9]包括在内。这是我写的代码。 这对输入(3,4)很有效,但当我尝试(323294746475)作为输入时,代码不起作用,结果显示0作为答案。我在不同的地方放了几个输出语句进行调试,发现有了这个输入,乘法的结果是-1170032381(这是错误的),因此while循环的条件失败。所以,我像

  • 问题内容: 我需要计算两个日期之间经过的时间。 这里要注意的是,我需要像YouTube一样用视频评论时间戳来显示它。也就是说,仅以最大的方式显示它。 例如, 如果时间是50秒前,应该说是50秒前。 如果时间超过一分钟,则应说一分钟前/十分钟前,等等。 如果时差是1小时30分钟,则应显示:一个小时前。 如果时间是一个半星期而不是一个星期前应该说的话。 如果时间超过一个月,则应说一个月前/两个月前,等

  • 问题内容: 我在这里看到了一些相关的问题……本质上,我想要的是将日期时间存储为UTC,并让应用程序用户选择他想显示日期的时区-time in。 由于似乎日期时间字段受基础JDBC驱动程序的影响,所以我想知道这是否是存储UTC日期时间的可接受方法: 将MySQL和Application Server计算机都设置为UTC时区(无需分开) MySQL和JVM都应该选择基础系统时间设置(如果没有其他说明的

  • 问题内容: 我写了一个程序,给我三个数组。一个字符串数组和两个dole数组…。但是我想将它们保存在一件事中(我不知道它是数组还是矩阵)。 。 例如:我有一个文件要读取,输入内容如下: 我已经制作了三个数组,一个数组存储字符串的名称,另外两个数组存储双打的两列… 但是我想将整行“(apple 2.3 4.5)”存储在一件事中,这样,如果我想找到苹果,我也可以获得apple的相关值.....能否请大家

  • 我需要传递两种不同的数据类型,一种是食物对象,另一种是整数。 我将这些作为食物对象及其各自的数量传递给餐馆类方法来准备订单。我应该用这些属性创建另一个类,还是有其他方法?