相关疑难解决方法(0)

如何在java中设置八进制的值?

我正在尝试编写以下代码.但它给了我错误,请帮助我.

    int six=06;
    int seven=07;
    int abc=018;
    int nine=011;
    System.out.println("Octal 011 ="+nine);
    System.out.println("octal O18 =" + abc);
Run Code Online (Sandbox Code Playgroud)

为什么我不能给018和019变量.我可以给变量赋值020和021.为什么会这样?这背后的原因是什么,请告诉我.
我得到了以下错误

            integer number too large: 018
            int eight=018;
Run Code Online (Sandbox Code Playgroud)

java octal

9
推荐指数
7
解决办法
4万
查看次数

Java程序中的数组奇怪的行为

我遇到了这个Java程序,它以意想不到的方式运行.以下程序计算int数组中元素对之间的差异.

import java.util.*;

public class SetTest
{
       public static void main(String[] args)
       {
            int vals[] = {786,678,567,456,
                          345,234,123,012};

            Set<Integer> diffs = new HashSet<Integer>();

            for(int i=0; i < vals.length ; i++)
                for(int j = i; j < vals.length; j++)
                       diffs.add(vals[i] - vals[j]);

            System.out.print(diffs.size());
       }
}
Run Code Online (Sandbox Code Playgroud)

如果我们分析它似乎设置大小应该是8,这是数组的大小.但是,如果你运行这个程序,它打印14.发生了什么?任何的想法?

先感谢您.

答:这种奇怪的行为发生是因为如果我们将数组改为12则数组中的012变为八进制,然后按预期打印8.

课程:永远不要用零填充整数文字.

java

4
推荐指数
1
解决办法
259
查看次数

来自Java的for循环的奇怪输出

因此,为了打印从1到10的数字,我们编写一个简单的for循环,从i = 1到i <= 10,并期望看到数字1 2 3 .. 10打印出来.我很好奇如果我为这样的条件添加额外的零会发生什么:

for(int i=000000; i<000010; i++){
    System.out.println(i)
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是

0
1
2
3
4
5
6
7
Run Code Online (Sandbox Code Playgroud)

为什么要打印这些数字?

java

2
推荐指数
1
解决办法
66
查看次数

了解int变量如何在C中存储值

考虑下面的C代码:

#include <stdio.h>
int main()
{
    int i = 012;
    printf("%d", i);
}
Run Code Online (Sandbox Code Playgroud)

在O/P上,值i打印为10.我知道(012)8 =(10)10.但我对C如何存储int变量值感到困惑.任何人都可以向我解释一下吗?

c

1
推荐指数
1
解决办法
462
查看次数

标签 统计

java ×3

c ×1

octal ×1