数组但有16位数字

时间:2012-05-25 18:56:38

标签: java

现在我知道只是放一个16位的数组对于数组来说太多了,它会给出一个答案,但对于一个网络安全课,我希望能够访问我附近的路由器。

我不会搞砸他们,但我有助于证明一点,并且所有的路由器都是一样的,这要归功于生活在不知名的地方。它们长16位。

那么有人可以帮我解决如何将16位数字组合在一起并在txt文件中创建它的所有内容吗?

我想要做的是创建一个新文件,然后创建一个使它成为字典类型的东西,因为它的每个数字都是0000000000000000 - > 9999999999999999。

创建文件对我来说没有问题,但是如何创建这个带有16个数字序列的数字字典呢?

编辑:我想把它分成4个4位数的东西,但我不确定如何确保它们是a)与之前的数字不同而且b),在第16位数之后留出空格。

4 个答案:

答案 0 :(得分:3)

首先,您的号码(99 ... 9)有16位数字。就Java中的数据类型而言,它约为53位(到目前为止为64位),因此它是long

但是,假设每个数字是64位。 因此文件大小可以是size =(99..99)(数字)* 64(每位数位)= 73k Tera Byte(无法以正常方式存储在文本文件中! )

所以你应该考虑另一种方式(?)

此外,您无法声明long l = 999999999999999;因为编译器得到了错误(整数到大),但这有效:long l = Long.parseLong("9999999999999999");

希望这可以帮到你!


编辑:long l = 9999999999999999999l;声明(l可以是大写和小写,感谢@Tom)

答案 1 :(得分:0)

如果我理解你的问题你想要这样做:

for(Double i = 0; i < 10000000000000000;i++)  
{  
       String s = i.toString();
       bufferedWriter.write(s);
}  

将当前Double的String表示写入文本文件。

答案 2 :(得分:0)

问题可能更清楚,但如果我理解你想要这样的领域:

int i = 10000000000000000;

或者

int[] i = { 1000000000000000 };

但是溢出了一个整数。 Java有一个叫BigInteger类的东西,它可以容纳任意大的数字,但你用字符串初始化它们:

List<BigInteger> i = new ArrayList<BigInteger>();
i.add(new BigInteger("1000000000000000"));

缺点是你不能在它上面使用普通的算术操作数,比如bi1 + bi2,但BigInteger类几乎可以为你提供使用它们所需要的所有操作,就好像它们是常规数字一样。 Here's the javadoc供参考。

答案 3 :(得分:-1)

执行此操作的最简单方法是使用for循环。 LinkedList最适合速度。

LinkedList<Double> list = new LinkedList<Double>();
for(double i=0;i<10000000000000000;i++)
    list.add(i);
//Output list to file next.