标签: long-integer

无法从类型对象转换为long

我有一个名为的哈希表table.类型值是long.我正在使用价值观.values().现在我想访问这些值.

Collection val = table.values();

Iterator itr = val.iterator();
long a  =   (long)itr.next();
Run Code Online (Sandbox Code Playgroud)

但是当我试图得到它时,它会给我错误,因为我无法从类型转换objectlong.我该怎么办呢?

java types casting long-integer

16
推荐指数
2
解决办法
8万
查看次数

从long long转换为int,另一种转换回c ++

如何从long long转换为int,另一种转换回c ++?也有长长的特性,特别是它的最大尺寸,谢谢提前..

c++ int casting long-integer

16
推荐指数
2
解决办法
7万
查看次数

C++中两个整数的乘法

我有一个非常基本的问题,但我不确定我是否理解这个概念.假设我们有:

int a = 1000000;
int b = 1000000;
long long c = a * b;
Run Code Online (Sandbox Code Playgroud)

当我运行此,c显示负值,所以我改变也ablong long,然后一切都很好.那么,为什么我必须改变ab,当其值在范围int和他们的产品被分配到c(这是long long)?

我正在使用C/C++

c++ int range long-integer

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

Java:为什么我不能使用科学记数法声明整数类型?

2e15一眼就可以轻易地读作"两千万亿",但是因为2000000000000000我必须计算零,这需要更长的时间并且可能导致错误.

为什么我不能声明intlong使用诸如2e9或之类的文字1.3e6?我理解10的负幂,例如10 2e-3或10的幂小于小数位数,例如1.0003e3,会产生一个浮点数,但为什么Java不允许这样的声明,只是截断浮点部分,并在结果值为非整数的情况下发出温和警告?

是否存在技术上的原因,这是一个坏主意,还是所有关于类型安全的?编译器简单地解析像这样的语句不是微不足道的

long x = 2e12long x = 2000000000000 //OK for long

int y = 2.1234e3作为int y = 2123.4 //warning: loss of precision

java integer scientific-notation exponent long-integer

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

32位系统上的长整数是否可以工作?

如果我理解它是正确的,int-variable以32位保存,将其限制为20亿到20亿.但是,如果我使用长变量,它将保存为64位,允许存储更多数字.我坐在64位系统上,但如果我将数据存储在64位,我的代码是否可以在32位系统上运行良好?

谢谢!

c# long-integer

15
推荐指数
3
解决办法
7868
查看次数

int到long赋值

我一直在尝试这个int和long转换,我尝试将int变量long赋给变量.代码如下:

public static void main(String []args){
    int i = 1024;
    long j = i;
    long k = i*i*i*i;
    System.out.println("j= " +j+ ", k= " +k);
}
Run Code Online (Sandbox Code Playgroud)

因此,在打印时j,它只是给出了输出1024.但是在打印时k,它显示溢出(k= 0).我通过使用这种技术解决了这个问题,我已经明确地将每个问题都转换i为了long.即

public static void main(String []args){
    int i = 1024;
    long j = i;
    long k = ((long)i)*((long)i)*((long)i)*((long)i);
    System.out.println("j= " +j+ ", k= " +k);
}
Run Code Online (Sandbox Code Playgroud)

现在,这既表现出的正确的价值观jk.所以,我想知道为什么需要int在第二种情况下进行投射,而不是在第一种情况下投射.在这个繁重的任务之后k,作为一个long可以保留这个值.但是,为什么没有正确分配?

java int long-integer

15
推荐指数
3
解决办法
3万
查看次数

在C#中Int64和long有什么区别?

在C#中,Int64和long有什么区别?

例:

long x = 123;
Int64 x = 123;
Run Code Online (Sandbox Code Playgroud)

c# long-integer

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

无法将类型'double'隐式转换为'long'

在这段代码中,我在评论的行中得到了上述错误.

public double bigzarb(long u, long v)
{
    double n;
    long x;
    long y;
    long w;
    long z;
    string[] i = textBox7.Text.Split(',');
    long[] nums = new long[i.Length];
    for (int counter = 0; counter < i.Length; counter++)
    {
        nums[counter] = Convert.ToInt32(i[counter]);
    }

    u = nums[0];
    int firstdigits = Convert.ToInt32(Math.Floor(Math.Log10(u) + 1));
    v = nums[1];
    int seconddigits = Convert.ToInt32(Math.Floor(Math.Log10(v) + 1));
    if (firstdigits >= seconddigits)
    {
        n = firstdigits;

    }
    else
    {
        n = seconddigits;        
    }
    if (u == 0 || v …
Run Code Online (Sandbox Code Playgroud)

c# double long-integer

14
推荐指数
3
解决办法
4万
查看次数

C:将最小32位整数(-2147483648)转换为float给出正数(2147483648.0)

当我遇到一些我觉得奇怪的行为时,我正在研究一个嵌入式项目.我设法在键盘上重现它(见下文)以确认,但我的机器上没有任何其他C编译器可以在它们上进行尝试.

场景:我有一个#define32位整数可以容纳的最负值,然后我尝试使用它来与浮点值进行比较,如下所示:

#define INT32_MIN (-2147483648L)

void main()
{
    float myNumber = 0.0f;
    if(myNumber > INT32_MIN)
    {
        printf("Everything is OK");
    }
    else
    {
        printf("The universe is broken!!");
    }
}
Run Code Online (Sandbox Code Playgroud)

键盘链接:http://codepad.org/cBneMZL5

对我来说,看起来这个代码应该可以正常工作,但令我惊讶的是它打印出来The universe is broken!!.

此代码隐式地将其转换INT32_MIN为a float,但事实证明,这会导致浮点值为2147483648.0(正!),即使浮点类型完全能够表示-2147483648.0.

有没有人对这种行为的原因有任何见解?

代码解决方案:正如Steve Jessop在他的回答中提到的,limits.h并且已经stdint.h包含正确的(工作)int范围define,所以我现在使用这些而不是我自己的#define

问题/解决方案解释摘要:鉴于答案和讨论,我认为这是对正在发生的事情的一个很好的总结(注意:仍然阅读答案/评论,因为它们提供了更详细的解释):

  • 我使用C89编译器具有32位longS,SO大于任何值LONG_MAX且小于或等于ULONG_MAX随后L后缀的类型为unsigned long
  • (-2147483648L)实际上是-一个unsigned …

c floating-point int minimum long-integer

14
推荐指数
2
解决办法
4738
查看次数

为什么int(maxint)给出一个long,但int(int(maxint))给出一个int?这是一个NumPy错误吗?

非常不言自明(我在Windows上):

>>> import sys, numpy
>>> a = numpy.int_(sys.maxint)
>>> int(a).__class__
<type 'long'>
>>> int(int(a)).__class__
<type 'int'>
Run Code Online (Sandbox Code Playgroud)

为什么叫int一次给我一个long,而两次叫它给我一个int

这是一个错误还是一个功能?

python int numpy python-2.7 long-integer

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