首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++中无符号long long中的问题

c++中无符号long long中的问题
EN

Stack Overflow用户
提问于 2011-04-15 19:08:39
回答 3查看 949关注 0票数 2

我有一个名为xyz.cpp的cpp文件,它包含很长的常量。现在我需要将long常量改为long long。

代码语言:javascript
复制
ex   
long a=0x00000001

代码语言:javascript
复制
long long a=0x0000000000000001

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

代码语言:javascript
复制
long long a=0x0000000000000001ULL .

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

现在我的问题是

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

提前感谢:)

EN

回答 3

Stack Overflow用户

发布于 2011-04-15 19:16:02

由于C++在不修改源代码的情况下无法编译为java,因此您可以去掉ULL/LL后缀(并将long long更改为long)。您只需在转换时将此添加到要更改的列表中-我看不出有什么问题?

票数 1
EN

Stack Overflow用户

发布于 2011-04-15 19:14:56

那么,您到底想做什么,将C++代码转换成Java?

Java没有无符号整数类型,来自C++的"long long“类型在Java中也不存在。Java具有以下整数类型:

byte -8位有符号整数

short -16位有符号整数

int -32位有符号整数

long -64位有符号整数

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

如果需要处理不适合long的数字,可以在Java语言中使用BigInteger

票数 0
EN

Stack Overflow用户

发布于 2011-04-15 20:42:27

在Java语言中,long可以保持64位,并在重要的地方使用带符号的行为。然而,这并不能阻止您在其中存储无符号的64位值。您需要为某些操作编写变通方法,但+、-、*、==、!=等所有操作的工作方式完全相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5675784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档