는 DivMod 함수 선언 따라서* (* = 65535 이하) DivMod가 있습니까? 델파이
procedure DivMod(Dividend: Cardinal; Divisor: Word;
var Result, Remainder: Word);
제수, 결과이고, 나머지는 65535 약간 심각한 제한보다 주장 할 수 없다. 왜 이런거야? 왜하지 delcaration는
procedure DivMod(Dividend: Cardinal; Divisor: Cardinal;
var Result, Remainder: Cardinal);
절차가 어셈블리를 사용하여 구현, 따라서 아마도 매우 빠른입니다을 수 있습니다. 코드에 사용할 수 없습니까?
PUSH EBX
MOV EBX,EDX
MOV EDX,EAX
SHR EDX,16
DIV BX
MOV EBX,Remainder
MOV [ECX],AX
MOV [EBX],DX
POP EBX
을 추기경에 맞게 조정할 수 있습니까? 순진한 시도가 얼마나 느린가
procedure DivModInt(const Dividend: integer; const Divisor: integer; out result: integer; out remainder: integer);
begin
result := Dividend div Divisor;
remainder := Dividend mod Divisor;
end;
16 비트 정수로 제한되지 않습니까?
귀하가 수락 한 답변은 제목에있는 질문에 대한 답변이 아닙니다. 제목을 편집하여 실제로 답을 원했던 내용과 더 가깝게 일치시킬 수 있습니다. –
나는 그것을했다. –