c++中unsigned long long的问题
problem in unsigned long long in c++
我有一个cpp文件xyz.cpp
,它包含长常量。现在我需要将long常量更改为long。
ex
long a=0x00000001
long long a=0x0000000000000001
用于将来使用。(我使用GCC编译器)但是当我这样做的时候,我得到了"整数值太大,不能保存长值"的错误。当我浏览互联网时,我得到了一个像使用的建议,
long long a=0x0000000000000001ULL .
可以正常工作。但问题是我有一个jar文件,需要将这个.cpp
文件转换为.java
。当它尝试从.cpp
文件转换.java
文件时,它不识别ULL。
我的问题是
1,在这种情况下,这是我的gcc编译器接受长长值,而不是添加ULL @结束2,或者建议我在。java文件中应该做些什么来接受长长值(ULL)(我知道java只有可以保存长长值的长值)
提前感谢:)
由于c++在不修改源代码的情况下不能编译为java,因此可以直接去掉ULL/LL后缀(并将long long
更改为long
)。您只需要将此添加到转换时要更改的内容列表中-我没有看到问题?
那么,你到底想做什么,将c++代码转换为Java吗?
Java没有无符号整数类型,c++中的"long - long"类型在Java中也不存在。Java有以下整数类型:
byte
- 8位有符号整数
short
- 16位有符号整数
int
- 32位有符号整数
long
- 64位有符号整数
(还有char
,技术上是一个16位无符号整数,但它意味着保存字符数据)。
如果你需要处理不适合long
的数字,你可以在Java中使用BigInteger
long
在Java中可以保存64位,在重要的地方具有签名行为。然而,这并不妨碍您在其中存储无符号64位值。您需要为某些操作编写绕道,但是+,-,*,==,!=等操作都完全相同。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- "无符号长整型"和'unsigned long long int'赋值问题
- 奇怪的DllImport问题,当传递一个LONG参数内存损坏
- c++中unsigned long long的问题