реализация беззнакового длинного длинного деления - PullRequest
0 голосов
/ 10 августа 2010

В каком файле я могу найти реализацию беззнакового длинного длинного деления (ulonglong, деленного на ulong)?(MS VC ++ 2010)

Ответы [ 2 ]

0 голосов
/ 10 августа 2010

Предполагая, что вы использовали каталог установки по умолчанию, он должен находиться где-то рядом:

C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ crt \ src \ intel \ ulldiv.asm

Если вы используете 32-разрядную версию Windows, это (вероятно) будет C:\program files вместо c:\program files (x86).Несмотря на комментарии, этот код действительно предназначен для длинного деления без знака, а не только для длинного деления без знака (т. Е. Он требует 64-битные операнды, а не 32-битные).

Я должен проверить, чтобы бытьконечно, но я верю, что компилятор может / будет генерировать встроенный код для деления, когда встроенные функции включены.Конечно, 64-битный компилятор будет генерировать встроенный код в любом случае.

0 голосов
/ 10 августа 2010
  • Напишите простую процедуру, которая выполняет деление:

#include "stdafx.h"

int main()
{
    unsigned long long a=123;
    unsigned long long b=10;
    a=a/b;
}
  • Установите точку останова в строке, которая говорит a = a / b;
  • Запустите вашу программу в конфигурации отладки, когда она остановится на точке останова, нажав F11, чтобы войти в нее.

Теперь есть две возможности:

  1. Отладчик открывает некоторый файл на ассемблере с именем "ulldiv.asm".Это означает, что у вас установлены источники CRT, и теперь вы читаете реализацию.

  2. Ничего не происходит, или появляется сообщение.Это означает, что у вас нет исходников для CRT или вы компилируете для 64-битной системы, в этом случае деление не обрабатывается библиотечной подпрограммой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...