У меня проблема с выходом функции mod
в Matlab. Я пытаюсь выполнить некоторые вычисления для двойного алгоритма ECC и добавить алгоритм. Я читаю данные из файла и сохраняю его в переменной, а затем выполняю некоторые операции. Все работает плавно, за исключением того, что я получаю 0
в temp1
, когда использую mod(X2,P)
. Однако, если я вставляю значения, хранящиеся в X2(3.0323e+153)
и P(1.1579e+77)
в командном окне (mod(3.0323e+153, 1.1579e+77)
), я получаю правильные значения. Кто-нибудь может мне помочь, пожалуйста! Ниже приведена часть сценария, которая является проблематичной.Функция функции Mod 0 для Matlab
P = hex2dec('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F');
line = fread(fileID,[1,67],'*char');
while ~feof(fileID)
PX = line(4:67);
X = hex2dec(PX);
X2 = X^2;
temp1= mod(X2 , P)
end
line = fread(fileID,[1,69],'*char');
end
fclose(fileID);
Да, это проблема, так Matlab не может обрабатывать 256 битное число арифметических операций. Знаете ли вы какую-либо библиотеку или добавляете, на которой можно работать с MATLAB для 256-битной арифметики? – Eshaal
@ Eshaal: Возможно, ['vpa'] (https://www.mathworks.com/help/symbolic/vpa.html) из Symbolic Math Toolbox? – gnovice