为什么茱莉亚对于某些大数会返回非零值?

问题描述

在Julia Shell中,当我想计算一些大数字时,对于其中的某些数字返回零,而对于其他数字则返回非零。


julia> 23^1023
-7505274568781129817

julia> 23^10233345345345345345345345
-524211381283076585

julia> 6^66
0

julia> 6^666567
0

julia> 6^666567467456456
0

为什么?据我所知,当一个数字大于其可变容量的两倍时,其值将为零。但这不是这种方式。

解决方法

这是整数溢出,请参见手册https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/#Overflow-behavior

您可以改用大整数(请参见https://docs.julialang.org/en/v1/manual/integers-and-floating-point-numbers/#Arbitrary-Precision-Arithmetic):

julia> big"23"^1023
11157740226766098642576916479985732502550079026659668602369253176154754608347999114910934288598509169938542322634035543168104589454551803554752143514808871856407739044413061564710593969809293170387198434732839849079475397354914324959462224192710277582733000707189017630945088977603741349278943158891431873760538457405883290110683119304669609980551503814930814431431975534991573062542027069568527398640080137783572573628744292934799926441803784257928864905102312768281505257318699158791253710647692433095043904635807704217468279561767861663146318198088623674770926880080210309989765622294999800807236464408766346103653985201759420509533876924909908750714069885590356229608446855366913940019430671619981625609206032799826735265432172679241233520172523125869020169711024904402773853129665351797759891642127264888666794316949688983939775549154259963104480736117124292892646814620494489503114758819943362183681467998652454547183948074914858274708971403049788805953569337415595467715850757595901742734059151188466480831121544684493340167911965220743922762612303000346811165975512651283076102510848811008182559770140939825724297406037953883140920313402683491853674438512331534910835550559414659803452756567465225399126516307745943694271055034096963098307296535723190502271598318692446343365508448643996409450204836382025575710687700606126899558525256788416497673251704346550625698638155949249669830567

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...