java - 以位 : Error 表示整数

标签 java integer byte type-conversion

我试图声明一个以字节为单位的整数。 我的意思是:我试图将 int a = 4 声明为 int a = 0100(为了简单起见,我已将其缩短为 4 位。) 以下是我使用过的代码,它给了我意想不到的输出。

public class class4A_d {
public static void main(String[] args) {
    System.out.println("Hello world,this is the main function ");
    int q1=  00000100;  //8 bits 
    int q2 = 00000000000000000000000000000100; //32 bits
    System.out.println("q1 and q2 are respectively "+ q1 + ":" + q2); //q1= 64,q2 =64 
                                       }
                       }

我知道java在后端将整数存储为2,s补码中的32位数字,每个位的权重按以下方式进行: 2(^0),2(^1),2(^2).....等 但这里的权重似乎是以下方式: 8(^0),8(^1),8(^2).....等 谁能解释一下吗?

最佳答案

当您声明 int 时,您可以将其声明为十进制、八进制、十六进制和二进制。

二进制:
二进制 int 常量以 0b 开头,例如

int binary = 0b00000100; //decimal: 4

八进制:
八进制 int 常量以 0 开头,因此请小心,因为您可能会意外使用它们,例如

int octal = 0127; //decimal 87

十六进制: 十六进制 int 常量以 0x 开头,例如

int hex = 0xFF; //decimal 255

关于java - 以位 : Error 表示整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43447908/

相关文章:

java - Appium:如何在混合应用程序中切换到 webview 并选择 webElement 而无需 JSONWP 代理

java - ArrayList 通过所有元素的索引更改进行随机化

python - 写入然后读取内存字节 (BytesIO) 给出空白结果

c - 通过串联将位(字节)存储在 long long 中

c - 请解释一下这段C代码

iphone - 将 UIImage 转换为字节

java - 正则表达式仅匹配 URL 的一部分 - 为什么?

java - 安卓 : faster solution to copying one file to another

c++ - 将最小值整数转换为 unsigned long

c++ - 您如何使用 clang 的新自定义大小 int 功能?