【问题标题】:Representing an Integer in bits : Error以位表示整数:错误
【发布时间】:2017-09-12 20:38:59
【问题描述】:

我正在尝试以字节为单位声明一个整数。 我的意思是:我试图将 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 的 32 位数字,在后端进行补码,每个位的权重按以下方式进行: 2(^0),2(^1),2(^2)……等等。 但是在这里,权重似乎采用以下方式: 8(^0),8(^1),8(^2)......等等。 谁能解释一下?

【问题讨论】:

标签: java integer byte type-conversion


【解决方案1】:

当您声明一个 int 时,您可以使用十进制、八进制、十六进制和二进制。

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

int binary = 0b00000100; //decimal: 4

八进制:
八进制 int 常量以 0 开头,所以要小心,因为它可能会发生,你会不小心使用它们,例如

int octal = 0127; //decimal 87

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

int hex = 0xFF; //decimal 255

【讨论】:

  • 该死的只是发布这个;)
猜你喜欢
  • 1970-01-01
  • 2017-12-12
  • 2022-01-10
  • 1970-01-01
  • 2021-07-22
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 2019-03-15
相关资源
最近更新 更多