-4

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

我不会惹他们,但我证明了一点,由于住在偏僻的地方,所有的路由器都是一样的。它们的长度为 16 位。

那么任何人都可以帮我解决如何将 16 位数字放在一起并在 txt 文件中创建吗?

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

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

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

4

4 回答 4

3

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

但是,假设每个数字都是 64 位的。所以文件大小可能是 size = (99..99) (number) * 64 (bit per number) = 73k Tera Byte (不可能以正常方式存储在文本文件中!)

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

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

希望这可以帮到你 !


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

于 2012-05-25T20:16:15.203 回答
0

如果我正确理解您的问题,您想这样做:

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

这会将当前的字符串表示形式写入Double文本文件。

于 2012-05-25T19:41:49.637 回答
0

问题可能更清楚,但如果我理解您想要这样的字段:

int i = 10000000000000000;

或许

int[] i = { 1000000000000000 };

但这会溢出一个整数。Java 有一个叫做 BigInteger 的类,它可以保存任意大的数字,但是你用字符串来初始化它们:

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

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

于 2012-05-25T20:03:19.347 回答
-1

最简单的方法是使用for循环。LinkedList为了速度,A将是最好的。

LinkedList<Double> list = new LinkedList<Double>();
for(double i=0;i<10000000000000000;i++)
    list.add(i);
//Output list to file next.
于 2012-05-25T18:59:38.890 回答