как компьютер работает, если значение больше чем? - PullRequest
3 голосов
/ 13 марта 2011

Я понимаю базовую двоичную логику и то, как выполнять базовое сложение, вычитание и т. Д. Я понимаю, что каждый из символов в этом тексте является просто двоичным числом, представляющим число в кодировке.Цифры ничего не значат для компьютера.Однако я запутался в том, как компьютер работает так, что число больше другого.что это делает на битовом уровне?

Ответы [ 5 ]

10 голосов
/ 13 марта 2011

Если у вас есть два числа, вы можете сравнить каждый бит, от самого старшего до наименее значимого, используя 1-битный вентиль компаратора:

eComparator gate

Конечно, n-битные вентили компаратора существуют и описаны далее здесь .

0 голосов
/ 13 марта 2011

Я полагаю, что выполняется побитовое сравнение двух чисел от старшего значащего до младшего значащего бита, и когда они отличаются, число с битом, установленным в "1", больше.

В архитектуре Big-endian сравнение следующих байтов:

A: 0010 1101 B: 0010 1010

приведет к тому, что A будет больше, чем B, поскольку его 6-й бит (слева) установлен в единицу, тогда как предыдущие биты равны B.

Но это только быстрый теоретический ответ, не беспокоясь о числах с плавающей запятой и отрицательных числах.

0 голосов
/ 13 марта 2011

Он вычитает одно из другого и определяет, меньше ли результат 0 (проверяя бит старшего разряда, который равен 1 на числе меньше 0, поскольку компьютеры используют нотацию дополнения 2).

http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm

0 голосов
/ 13 марта 2011

Внутри процессора часто будет микрокод для выполнения операций с использованием аппаратных опций, таких как сложение / вычитание, которые уже есть.

Таким образом, для сравнения целого числа микрокод может просто выполнить вычитание, и на основании результата определить, больше ли одно, чем другое.

Микрокод - это в основном просто низкоуровневые программы, которые будут вызываться сборкой, чтобы было похоже, что на процессоре больше команд, чем на самом деле встроено в процессор.

Вы можете найти это полезным: http://www.osdata.com/topic/language/asm/intarith.htm

0 голосов
/ 13 марта 2011

Вычитает два числа и проверяет, является ли результат положительным, отрицательным (старший бит - он же «установлен минус бит») или нулем.

...