Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Assembler

Страница: 1 |

 

  Вопрос: Помогите в Ассемблере Добавлено: 07.11.07 08:20  

Автор вопроса:  Scay81
Доброе время суток!Форрумчане помогите мне разобраться с одной не большой штукой.Помогите разобраться с двоичной арифметикой.Почему 1+1=10 , 1+1+1=11 , и почему 01000001=65 и т.д.Обьясните как происходит сложение.Зарание благодарен.

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Yanex



ICQ: 387761649 

Вопросов: 32
Ответов: 169
 Web-сайт: Progr.Do.am
 Профиль | | #1
Добавлено: 07.11.07 12:50
У, это надо объяснять всю двоичную арифметику. А если нужно только складывать числа, то это делается столбиком:

 10101000
 10101011
+--------
101010011

Правило сложения:

0+0=0
0+1=1
1+0=1
1+1=10
10+1=11

и т.д. Тоже самое, что и в обычной арифметике, только в основании 2.

Ответить

Номер ответа: 2
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #2
Добавлено: 08.11.07 14:48
Про двоичную арифметику пишется почти в каждом учебном пособии по ассемблеру. Не помню, вроде в книгах у Юрова и у Зубкова в книгах это было.

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 235
Ответов: 8360
 Профиль | | #3 Добавлено: 08.11.07 23:45
Почему 1+1=10 , 1+1+1=11 , и почему 01000001=65 и т.д
Алах так придумал.

Ответить

Номер ответа: 4
Автор ответа:
 ZagZag



ICQ: 295002202 

Вопросов: 87
Ответов: 1684
 Профиль | | #4 Добавлено: 09.11.07 01:18
Программерские недели в макдональдс!
1+1=10!!!

Ответить

Номер ответа: 5
Автор ответа:
 VerhoLom



Вопросов: 20
Ответов: 285
 Профиль | | #5 Добавлено: 05.01.08 17:02
Правильно, 10 и будет. Вот простой ответ (так, как я эту тему понимаю, хотя, может быть, и путанно):

Любой байт состоит из 8 битов, например:

11111111 = FF = 255


В Асме, по моим наблюдениям, все в основном строится на 16-ричных числах, а потом - уже двоичные в машинном коде. Так вот, любая цифра 16-ричного числа состоит из 4 битов, каждый из которых представляет собой 2 в степени от 0 до 3. Например, 16-ричное число FF (255 в нормальном понимании) сотсоит из таких битов:


  F F
1111 1111
8421 8421 - это числа, соответствующие номерам битов


Каждый бит справа налево представляет собой число от 1 до 8: 1, 2, 4 ,8. Чтобы составить число, записанное в двоичной форме, слаживают все числа, соответствующие единичным битам. Если например, у нас есть двоичное число:

11011001


то мы его разбиваем на два блока по 4 цифры (справа налево и всегда по 4 цифры - это полубайт), тогда у нас выйдет:


1101 1001
8421 8421 - это числа, соответствующие номерам битов


Теперь слаживаем числа, соответствующие единичным битам (можно справа налево):


1 1 0 1
8+4+0+1 = 13 = 0D в 16-ричном виде


то же делаем и со вторым числом:

1 0 0 1
8+0+0+1 = 9


Итого вышло число D9 в 16-ричном виде, по-нашему - 217.

Отсюда мораль:
1+1 всегда будет равен 10 в двоичном виде: справа налево 0 - это 1, а 1, следующая за ним - 2. Нулевой бит мы пропускаем - остается 2 бит - это двойка. Вот и результат такой.

Уфф...

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 235
Ответов: 8360
 Профиль | | #6 Добавлено: 08.01.08 03:33
точно что уфф )))

Ответить

Номер ответа: 7
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #7
Добавлено: 10.01.08 13:27
Вот код на Си, который переводит двоичные числа в десятичные. Отсюда и мораль :)
/* Перевод двоичных чисел в десятичные */
#include <stdio.h>

main()
{
   int number, residue, digit, multiplier = 1, decimal = 0;

   printf("Введите двоичное число: ";);
   scanf("%d", &number);

   residue = number;
   while (residue > 0)
   {
      digit = residue % 10;
      decimal += digit * multiplier;
      multiplier *= 2;
      residue /= 10;
   }

   printf("0x%d == %d", number, decimal);

   return 0;
}

Ответить

Номер ответа: 8
Автор ответа:
 allex7



Вопросов: 0
Ответов: 2
 Web-сайт: allex72008.narod.ru
 Профиль | | #8
Добавлено: 14.11.08 09:45
А вот где можно скачать книги и тогда все станет понятно.
http://allex72008.narod.ru

Ответить

Номер ответа: 9
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6596
 Профиль | | #9 Добавлено: 14.11.08 15:03
Для компьютера нет такого понятия как двоичная, десятиричная, шестнадцатиричная и прочих систем счислений.

Он может работать только в двоичной, вне зависимости от того хотелось бы тебе этого или нет.

Ответить

Номер ответа: 10
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #10
Добавлено: 14.11.08 15:14
Археологи, мля.

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 14.11.08 17:02
Компьютер вообще не знает, что такое система счисления.

Ответить

Страница: 1 |

Поиск по форуму





© Copyright 2002-2011 VBNet.RU | Пишите нам