标签: long-integer

将 size_t 转换成 long,有什么缺点吗?

将 size_t 转换为 long 有什么缺点吗?因为,我正在编写一个在文件中维护 links_list 的程序。因此,我基于 size_t 遍历到另一个节点,并且还将列表总数记录为 size_t。因此,显然会有一些转换或添加 long 和 size_t。这有什么缺点吗?如果有的话,我会把所有东西都做的一样长,而不是 size_t,甚至是尺寸。请指教。

c++ sizeof size-t type-conversion long-integer

1
推荐指数
1
解决办法
6092
查看次数

Scala Long - 对象?

Scala-Lang文档说:

Long,一个 64 位有符号整数(相当于 Java 的 long 原始类型)是 scala.AnyVal 的子类型。Long 的实例不由底层运行时系统中的对象表示。

Java 有long(原始的)和Long(装箱的)。

Scala 有boxed这个原语的版本吗?

scala long-integer

1
推荐指数
1
解决办法
1913
查看次数

使用位在Integer中存储true/false

情况

我想要实现的是将true/false存储为Integer/Long中的一个位.问题是如果某个位为1或0,我无法解决.

public class Test
{
    private static long unlocked = 0;

    public static void main(String[] args)
    {
        setUnlocked(1);
        setUnlocked(2);
        setUnlocked(3);
        System.out.println(isUnlocked(2);
    }

    public static void setUnlocked(int id)
    {
        unlocked += Math.pow(2, id);
    }

    public static boolean isUnlocked(int id)
    {
        // ???
        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

与上面的测试用例一样,它将产生以下位序列:1110 = 14.

编辑

第二个问题:

    public static void setUnlocked(int id)
    {
        unlocked |= 1 << id;
    }
Run Code Online (Sandbox Code Playgroud)

    public static void setUnlocked(int id, boolean set)
    {

    }
Run Code Online (Sandbox Code Playgroud)

这将给出在给定位置将该位设置为0或1的选项.

但是我怎样才能做到这一点?

java integer boolean bit long-integer

1
推荐指数
1
解决办法
103
查看次数

为什么这个Java长计算会返回NaN?

import java.util.*;
import java.lang.*;
import java.io.*;

public class MyClass {
    public static void main (final String[] args) {
        float distanceInMeters = 0.0f;
        long time = 1439230171182L;
        long previousTime = 1439230111554L;
        float speed = (distanceInMeters / 1000) / ((time - previousTime)/3600000);
        System.out.println(speed);
    }
}
Run Code Online (Sandbox Code Playgroud)

该计算返回"NaN".有谁知道为什么?

java nan long-integer

1
推荐指数
2
解决办法
804
查看次数

你需要在初始化一个长期结束时添加一个L吗?

如果我想初始化很长时间1或者0我是否需要添加L到最后?

long l = 0L;
long k = 1L;
Run Code Online (Sandbox Code Playgroud)

long l = 0;
long k = 1;
Run Code Online (Sandbox Code Playgroud)

低值是否重要?

java long-integer

1
推荐指数
1
解决办法
809
查看次数

Java 8:为什么我不能将这个二进制字符串解析为long?

长话短说,我在Java中搞乱了一些基本的遗传算法.我用a long来存储我的基因,但我在调试时使用二进制字符串来提高可读性.我遇到了一个奇怪的情况,我无法解析一些以a开头的二进制字符串1(我不知道是否总是这样,但它似乎与长度为64个字符的字符串一致).

我能够通过以下示例复制此内容:

String binaryString = Long.toBinaryString(Long.MIN_VALUE);
long smallestLongPossibleInJava = Long.parseLong(binaryString, 2);
Run Code Online (Sandbox Code Playgroud)

将抛出并生成以下堆栈跟踪:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1000000000000000000000000000000000000000000000000000000000000000"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Long.parseLong(Long.java:592)
    at com.company.Main.main(Main.java:25)
Run Code Online (Sandbox Code Playgroud)

鉴于我有一个正确格式化的六十四个字符的二进制字符串,为什么我不能解析一些字符串?大多数情况下,我的字符串是随机生成的,但在上面的实例中,这应该可以工作(Long.MIN_VALUE在Java中看来肯定是有效的长).

java string java-8 long-integer

1
推荐指数
1
解决办法
309
查看次数

c#System.OverflowException

所以这是我的代码:

static void Main(string[] args)
{
    Console.WriteLine("How many numbers are you going to enter?");

    long num = long.Parse(Console.ReadLine());

    long[] nums = new long[num];
}
Run Code Online (Sandbox Code Playgroud)

当我为"num"输入10000000000时,我得到了

"System.OverflowException算术运算导致溢出."

我该怎么做才能解决这个问题?

c# math long-integer

1
推荐指数
1
解决办法
254
查看次数

ByteBuffer putLong()长达7个字节的值

我有一个long.我知道这long不是很大.实际上,它可以编码为7个字节的无符号整数.

我想我写longbyte[7]使用ByteBuffer和小端.

这个

long myLong = ... //some value
byte[] myLongBytes = ByteBuffer.allocate(7).order(ByteOrder.LITTLE_ENDIAN).putLong(myLong).array();
Run Code Online (Sandbox Code Playgroud)

IndexOutOfBoundsException当然是投掷.我甚至可以这样做ByteBuffer吗?我应该以不同的方式做吗?

java bytebuffer endianness long-integer

1
推荐指数
2
解决办法
2613
查看次数

在Java中总结两个巨大的长

我写了这个方法,在arrayList中搜索是否有两个数字,它们总和等于变量elem.问题是变量的总和超过了long类型的维数.我怎么写呢?

public static boolean searchSum(ArrayList<Long> array, long elem) {
   int left = 0, right = array.size()-1;
   while (left<right) {
     long n1=Long.valueOf(array.get(left));
     long n2=Long.valueOf(array.get(right));
     if ((n1+n2)==elem) return true;
     else if ((n1+n2)<elem) left++;
     else right--;
   }
   return false;
 }
Run Code Online (Sandbox Code Playgroud)

java integer integer-overflow biginteger long-integer

1
推荐指数
1
解决办法
333
查看次数

C ++中long long int的确切最大值是多少?

我已经使用c++了3个月多,无法确定中的确切数字最大值long long int

有人知道价值吗?

c++ long-integer

1
推荐指数
1
解决办法
99
查看次数