bignumber.h arduino如何解析大于10位数字的数字

BigNumber.h Arduino how to parse a number larger then 10 digits

本文关键字:数字 10位 大于 何解析 arduino bignumber      更新时间:2023-10-16

我制作了一个简单的代码来测试一个数字,以查看它是否是素数,但是在向其喂食大质量时,以测试Arduino上的程序速度它只能在我测试了我的读取功能的情况下只需数字9-/不足的数字,它返回了整个数字,但是" bignumber"不会解析它只是说它的0

代码:

void Speed(String num)
{
    Serial.println("NUM="+num);
    BigNumber NUM = num.c_str();//this is where it fails
    BigNumber Curr = "1";//start 2 / 'curr++' start of loop
    num = "";
    ... the testing of prime numbers here

如果我放入10位数字,代码会停止Arduino,则输出是如此

<|S 1234567891
>|NUM=1234567891

,如果我将一个数字放在9位数字上,则它会按预期输出

输出
<S 123456789
>|NUM=123456789
>|123456789 is not a prime number 
>|because ist a factor of 3

我尝试看看是否有人有与我相同的问题,但我在任何地方都找不到。

我使用arduino-uno

编辑:进行更多测试后,现在没有设置测试" S 1111111111"(10位)后的崩溃的数字,其输出是正常的:

<|S 1111111111
>|NUM=1111111111
>|1111111111 is not a prime number 
>|because ist a factor of 11

但是,如果我将11位放置为0 ??

<|S 11111111111
>|NUM=11111111111
>|0 cant be a prime number because it doesn't end in 1,3,7,9

bty:我忘了提到" s number_here"指定了找到结果的mothod,我也有d = dataCrunch,它检查了所有数字,l = list witch with with witch with with witch witch with of找到的质量数字列表,例如prime Numberneck search,而且thay的工作很好,因为数据爆炸(d)在分析给定的号码时也有同样的问题。

edit2:这证明了Bignumber可以容纳如此大的数量https://forum.arduino.cc/index.php?topic=85692.0在第一篇文章中。

因此,在进行一些扩展研究之后,bignumber不适合非常大的数字,而是'bignumber.h'lib的另一部分。

bc_num x;
bc_str2num(&x, "9898989898", 10);
String c = "Controll=";
c+=bc_num2str(x);
Serial.println(c);

输出

Controll=9898989898

但是,如您所见,这需要更多的编程才能诱发,因此我将立即开始再见。