bignumber.h arduino如何解析大于10位数字的数字
BigNumber.h Arduino how to parse a number larger then 10 digits
我制作了一个简单的代码来测试一个数字,以查看它是否是素数,但是在向其喂食大质量时,以测试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
但是,如您所见,这需要更多的编程才能诱发,因此我将立即开始再见。
相关文章:
- 16 位到 10 位转换代码说明
- C++ for 循环,用于反转数字 10 - 99
- 将大数字(10-12 位数字)存储在无序映射中<字符串,整数>
- boost::gil支持10位图像吗
- 将 10 位值写入 char 数组
- C 正则是从字符串中提取所有可能的10位数字
- 无需使用循环,就将ISBN-10的前9位数字读取为字符串并计算第10位数字
- Qimage :: Pixel函数的10位输出特别是指的是什么
- 检测显示屏上的 10 位颜色支持
- 在 c++ 中不能将超过 10 位数字放入一个变量中
- 为什么我的代码从 10 位数字开始不起作用C++
- bignumber.h arduino如何解析大于10位数字的数字
- 唯一的 10 位序列 ID - 200 个 ID/秒
- 如何宽色域,从8位转换到10位
- 在 C/C++ 中创建 10 位数据类型
- 为什么此函数的计数不会超过 10 位?
- 我们应该使用哪种数据类型来输入一个介于 0<= 数字 <= 10^18 之间的数字
- C++ 中的 10 位或 12 位字段数据类型
- 为什么数字10用于引用整数类型0
- 以毫秒为单位的时间戳给了我 10 位C++数字