现在我知道只是放一个16位的数组对于数组来说太多了,它会给出一个答案,但对于一个网络安全课,我希望能够访问我附近的路由器。
我不会搞砸他们,但我有助于证明一点,并且所有的路由器都是一样的,这要归功于生活在不知名的地方。它们长16位。
那么有人可以帮我解决如何将16位数字组合在一起并在txt文件中创建它的所有内容吗?
我想要做的是创建一个新文件,然后创建一个使它成为字典类型的东西,因为它的每个数字都是0000000000000000 - > 9999999999999999。
创建文件对我来说没有问题,但是如何创建这个带有16个数字序列的数字字典呢?
编辑:我想把它分成4个4位数的东西,但我不确定如何确保它们是a)与之前的数字不同而且b),在第16位数之后留出空格。
答案 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.