对于这样一个蹩脚的问题,我很抱歉.我会自己测试一下......但不幸的是我不知道如何编写java代码,并且不值得回答这个问题.
是否可以一起添加长整数?我的朋友正在研究一个项目,我认为他可以通过使用long而不是整数来修复他的一个错误.(他希望数字高于21.47亿).
我试着自己做一些研究,我很惊讶答案并不容易找到.这是我能够找到的一个信息来源.
"如果其中一个或两个整数类型都很长,结果很长." https://community.oracle.com/message/5270213
那是对的吗?再次,抱歉我自己无法测试这个.
我们几乎都在64位机器和JVM上,RAM很便宜,性能很少以低级JVM问题为中心.
那么为什么不是每个人都停止使用int并在Java和持久(数据库)存储中完全移动到64位长.
我知道我永远不会有2 ^ 64个用户,也不会有2 ^ 64种语言,如果我在零售帝国开设了2 ^ 64家商店,我目前还没有建立我认为我可以买自己的大陆并退休.
除了'您不需要64位数字来存储所有可能的宠物商店ID'之外,还有其他缺点吗?...?
这是我在main方法中使用的代码:
String numbers = "12345678900";
long upc = Integer.parseInt(numbers);
System.out.println(upc);
Run Code Online (Sandbox Code Playgroud)
给我:
Exception in thread "main" java.lang.NumberFormatException: For input string: "12345678900"
at java.lang.NumberFormatException.forInputString...
at java.lang.Integer.parseInt....
at java.lang.Integer.parseInt...
at testRun.main...
Run Code Online (Sandbox Code Playgroud)
我不能使用double,它们需要存储为没有小数的值.我试图从字符串中获取数字串到一个包含数字的变量(没有小数)
考虑以下代码:
// Simply loop over until 64 is hit.
unsigned long x = 0;
for (int i = 0; i <= 64; i++) {
if (i == 64) {
x = 1ul << i;
printf("x: %d\n", x);
}
}
Run Code Online (Sandbox Code Playgroud)
我们知道无符号长是64位宽,左移1到64位将变为1000 ... 000(后面有64个零),并且会被截断为0.但是,实际的打印输出给出:
x: 1
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我们这样做的话
printf("x: %d\n", (1ul << 64));
Run Code Online (Sandbox Code Playgroud)
它会打印0.
任何人都可以解释为什么会这样吗?为什么在第一种情况下,程序错误地产生1而不是0,但在第二种情况下它是正确的?
简介:我在Android中有一个方法可以进行Long比较.基本上,我比较日期(时间戳/时期).其中一个比较检查日期是否等于"if(a2 == a1 && b2 == b1)".
问题:问题是即使这些数字相等,"if"也不起作用.我还在调试屏幕上附上了一个截图,其中包含了一个示例中要比较的值.
问题:你知道为什么病情不起作用吗?我无法想象,因为它只是数学应该工作.也许有一个我没有看到的铸造问题?所有其他情况下"if"有效.
方法:
public ArrayList<Integer> getConflicts(ArrayList<AssetBooking> assetBookings) {
Epoch epoch = new Epoch();
ArrayList<Integer> conflicts = new ArrayList<>();
for (AssetBooking aB : assetBookings) {
Long a1 = aB.getFromDatetime() / 1000;
Long b1 = aB.getToDatetime() / 1000;
Long a2 = epoch.getEpochNoSeconds(fromDatetime);
Long b2 = epoch.getEpochNoSeconds(toDatetime);
if (a2 == a1 && b2 == b1) {
System.out.println("equals");
}
if ((a2 < a1 && b2 >= a1) || (a2 == a1) || (a2 …
Run Code Online (Sandbox Code Playgroud) 可能重复:
Java问题 - 背后的原因和可能的输出是什么
long milli=24*60*60*1000;
long micro=24*60*60*1000*1000;
long result=micro/milli;
Run Code Online (Sandbox Code Playgroud)
结果应该是1000但不是.我使用时为什么会这样24*60*60*1000*1000L
?
有人能告诉我这个的原因吗?
我想在c#中编写VB6应用程序的这一部分.如何将long更改为Hex值?
Public Function longToHex(l As Long) As String
longToHex = Hex(l)
If Len(longToHex) < 4 Then longToHex = String(4 - Len(longToHex), "0") & longToHex
longToHex = Right(longToHex, 2) & Left(longToHex, 2)
End Function
Run Code Online (Sandbox Code Playgroud) 所以我将一个long转换为int.长号是1302165637746283555,它作为int转换为1537778179.我一直无法找到有关它为什么这样做的文档.它是如何得出第二个数字的,有没有办法将int数转换回长数?这是我的代码.
DateTime creationTime = File.GetCreationTime(@"c:\windows\setupact.log");
FILETIME fl1 = new FILETIME();
fl1.dwLowDateTime = unchecked((int)creationTime.ToFileTime());
Run Code Online (Sandbox Code Playgroud) 我只是在阅读"C接口和实现".书中描述了一些非常有趣的概念.有时(在我看来)代码非常难看,但现在我有一个关于将整数/长转换为字符串(char数组)的问题.书中描述的是:
const char *Atom_int(long n) {
char str[43];
char *s = str + sizeof str;
unsigned long m;
if (n == LONG_MIN)
m = LONG_MAX + 1UL;
else if (n < 0)
m = -n;
else
m = n;
do
*--s = m%10 + '0';
while ((m /= 10) > 0);
if (n < 0)
*--s = '-';
return Atom_new(s, str + sizeof str - s);
}
Run Code Online (Sandbox Code Playgroud)
因为没有描述为什么使用这个函数的方式......我想知道为什么它不仅仅是简单的东西:
const char *Atom_int(long n)
{
char str[43];
char *s = str;
sprintf(str, …
Run Code Online (Sandbox Code Playgroud) 无法解析数字以下.
Long.parseLong("1000.00".length() > 0 ? "1000.00" : "0")
Run Code Online (Sandbox Code Playgroud)
解析"1000.00"然后获取数字格式异常.
如何在java中将"1000.00"这个字符串解析为long?
为什么-1 << 23和-1 << 55在Java中返回相同的值?它似乎应该是非常不同的,因为我正在转移更多的地方!但是,它们会产生相同的值.为什么会这样?
public class BitShifting {
public static void main(String... args) {
long foo = -1 << 23;
long bar = -1 << 55;
System.out.println(foo);
System.out.println(bar);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
-8388608
-8388608
Run Code Online (Sandbox Code Playgroud) 是否可以在不使用java的内置函数的情况下将String转换为long?
例如:
String s = "35";
long ans = Long.parseLong(s);
Run Code Online (Sandbox Code Playgroud)
如何在不使用java的情况下执行相同的任务 Long.parseLong function