Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java c+中的无符号long-long问题+;_Java_C++_G++_Unsigned Long Long Int - Fatal编程技术网

Java c+中的无符号long-long问题+;

Java c+中的无符号long-long问题+;,java,c++,g++,unsigned-long-long-int,Java,C++,G++,Unsigned Long Long Int,我有一个cpp文件,比如说xyz.cpp,它包含长常量。现在我需要将long常量更改为long-long ex long a=0x00000001 到 为了将来的目的。(我使用gcc编译器) 但当我这样做时,我得到了“整数值太大,无法容纳长数值”错误。 在网上浏览时,我得到了一个建议,比如使用 long long a=0x0000000000000001ULL . 效果很好。但问题是我有一个jar文件,需要将这个.cpp文件转换为.java。当它试图从.cpp文件转换.java文件时,

我有一个cpp文件,比如说
xyz.cpp
,它包含长常量。现在我需要将long常量更改为long-long

ex   
long a=0x00000001

为了将来的目的。(我使用gcc编译器) 但当我这样做时,我得到了“整数值太大,无法容纳长数值”错误。 在网上浏览时,我得到了一个建议,比如使用

long long a=0x0000000000000001ULL .
效果很好。但问题是我有一个jar文件,需要将这个
.cpp
文件转换为
.java
。当它试图从
.cpp
文件转换
.java
文件时,它无法识别ULL

现在我的问题是

1,对于这个场景,我的gcc编译器是不是要让它接受long-long值,而不是在末尾添加ULL 2,或者建议我在.java文件中应该做什么来接受long值(ULL)(我知道java只有long值可以容纳long值)


>

> P> >,你到底想做什么,将C++代码转换成java?< /P>

java没有无符号整数类型,而C++中的“长长”类型也不存在于java中。Java具有以下整数类型:

字节
-8位有符号整数

short
-16位有符号整数

int
-32位有符号整数

long
-64位有符号整数

(还有
char
,从技术上讲,它是一个16位无符号整数,但用于保存字符数据)


如果您需要处理不符合<代码> > > < /p> < p>的代码,则可以使用java中的<代码> BigInteger <代码>。因为C++不会在不修改源的情况下编译为java,您可以只删除OL/LL后缀(并且将<代码>长Lo/<代码>改为<代码>长< /COD>)。您只需在转换时将其添加到要更改的内容列表中—我看不出有什么问题?

long
在Java中可以保存64位,重要的是签名行为。但是,这不会阻止您在其中存储未签名的64位值。您需要为某些操作编写变通方法,但是+,-,*,==,!=etc的工作原理完全相同。

嗨,谢谢你的回答。但是有.jar文件,它出于某种目的将my.cpp转换为.java。我在末尾加上ULL来写长值,是的,没有错误。但为了让我的项目运行,.jar文件尝试将.cpp转换为.java。现在,由于java无法识别ULL,我面临着这方面的错误。我需要这两个文件与分配给它们的长值完美配合。但是我该如何实现呢?它是什么程序将你的C++代码转换成java?需要在该程序中更改某些内容(询问编写程序的人员)以支持此操作。@Logeshwari Ram:通过修改转换代码,以便正确处理LL和ULL。您好,谢谢您的回答。但是有.jar文件,它出于某种目的将my.cpp转换为.java。我在末尾加上ULL来写长值,是的,没有错误。但为了让我的项目运行,.jar文件尝试将.cpp转换为.java。现在,由于java无法识别ULL,我面临着这方面的错误。我需要这两个文件与分配给它们的长值完美配合。但我该如何做到这一点呢。。如果添加了WENL或ULL,代码可以工作,但将.cpp转换为.java时失败。。是否有任何可能的方法使代码在不使用LL或ULL>的情况下运行?还是java文件接受该值?@Logeshwari Ram:No。如果文本值不适合整数,则必须附加
LL
,gcc才能接受该值。
long long a=0x0000000000000001ULL .