【问题标题】:Java int issue while intializtion初始化时的Java int问题
【发布时间】:2014-03-16 00:04:12
【问题描述】:

我一直在做一个项目,我在网上看到了一些参考资料,它们已初始化:

int val= 0x000; output 0
int val1= 0x001; output 1

java 究竟是如何转换它的?

谢谢

【问题讨论】:

标签: java int


【解决方案1】:

这是一个十六进制(以 16 为底,而不是以 10 为底)。十六进制以0x... 开头。它可以包含这些数字:0123456789ABCDEF

八进制数(以 8 为底)以 0... 开头,并且不能包含小于 8 的数字 (01234567)

int dec = 123; // decimal: 1*(10^2) + 2*(10^1) + 3*(10^0) = 123
int oct = 0123; // octal: 1*(8^2) + 2*(8^1) + 3*(8^0) = 83
int hex = 0x123; // hexadecimal: 1*(16^2) + 2*(16^1) + 3*(16^0) = 291

【讨论】:

    【解决方案2】:

    你可以用十进制表示法做int val = 0;int val = 1;..

    数字前的0x表示十六进制...

    所有符号为:

    0b二进制int i = 0b10101010110;

    十进制int i = 123;

    0八进制int i = 0123345670;

    0x十六进制int i = 0xAEF123;

    【讨论】:

    • 0b 仅支持 Java 7 及更高版本
    • 谢谢!!我得到了答案
    【解决方案3】:

    事实上,Java 不会“转换”而是“解释”值(作为十六进制)。

    【讨论】:

      【解决方案4】:

      以 0x 开头的数字是十六进制。 Java 将它们(也像十进制一样)转换为二进制并保存。

      【讨论】:

        【解决方案5】:

        这个十六进制数字系统(以 16 为基数)

        从 0x 开始...

        八进制以 0 开头...)

        Link

        【讨论】:

        • 抱歉,我复制了一份 PDF
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-16
        • 1970-01-01
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多