java - C 与 Java 中的内存分配

标签 java c memory integer

我试图在不使用模运算的情况下查找数字是偶数还是奇数。根据我的理解,当我在 C 或 Java 中定义 int 时,该数字将存储为 64 字节的内存。我可以使用方括号 [] 访问该数字的第零(第 0)位。

但是,我无法在 Java 中做到这一点。

那么,我的问题是 Java 中的内存分配和语法有何不同?

最佳答案

这确实与“内存”或“内存分配”无关。您正在谈论数字的一个简单属性。

在二进制中,如果数字是奇数,则数字的最低有效位为 1;如果数字是偶数,则数字的最低有效位为 0。好的,那么我们如何隔离底部呢?答案是“与”运算,在 C 和 Java 中都表示为“&”。

  boolean isEven = (number & 1) == 0;  
  boolean isOdd = (number & 1) != 0;  

顺便说一下,用 C 语言

  • 整数当然不会占用 64 个字节。也许是 64 位,取决于计算机、C 实现等。

  • 给定一个整数,括号不会为您提供位级访问。括号用于数组索引:即找出数字数组中的第 N 个数字。

关于java - C 与 Java 中的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61163136/

相关文章:

java - 在 java 中向菜单按钮添加功能

java - 如何在Java中检测主线程何时卡住GUI?

c - 用 C 解析 XML

检查内存分配w/o valgrind

c++ - 我可以使用placement new 来重置shared_ptr 中的对象吗?

java - main方法中的数组声明

java - 如何检查我使用的是哪个版本的 Eclipse 编译器?

swift - 即使在取消初始化后内存中的 NSManagedObject

c - 将 C 程序翻译成 IA32 程序集(非常快)

c++ - 将多个文件段复制到一个文件中 - Qt