it-place.net > Уроци > Други
Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

   Рубрики
 
 
 
 

 Форуми
» SEO и оптимизация
» Всичко за PHP и Perl
» Всичко за C, C++ и .NET
» Всичко за Java и JSP
» Всичко за SQL и MySQL
» Всичко за XHTML и CSS
» Презентация на сайтове
 Асемблер за начинаещи: Глава 1 - Числа и бройни системи.
  1. Основни положения
  2. Компютри и бройни системи
  3. Компютри и бройни системи-2
  4. Компютри и бройни системи-3
  5. Компютри и бройни системи-4
     
Автор  johnfound (04.06.2004 19:34)  съобщение до автора
Погледнат  15899 пъти  добави към любими
Оценка  добави коментар
Гласове  78  изпрати на приятел
Коментари  (0)  абонирай се за Други
    Страница 5 / 5

 



Броене в двоична система:

000
001
010 -> тук цифрата превърта и увеличаваме следващата
011
100 -> тук също, но следващата също превърта и увеличаваме третата.
101
110 -> пак превърта
111
000 -> тук превъртат и трите цифри и трябва да въведем четвърта, но надявам се този пример е достатъчен.

Броене в шестнайсетична система:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, 10 (превъртане), 11, 12
13, 14, 15, 16, 17, 18, 19, 1a, 1b, 1c, 1d, 1e, 1f, 20 (отново), 21 ...
... fa, fb, fc, fd, fe, ff, 100 (отново - тук числото става трицифрено)


Преобразуване от десетична в двоична и шестнайсетична система.

За съжаление, 10 не е степен на двойката и затова преобразуването от десетична в двоична или шестнайсетична система не е толкова проста операция.

Най-общо алгоритъмът е следният: "Делим числото на основата на бройната система и записваме остатъците в обратен ред.".
Знам че не е ясно но с един пример ще стане:

Да преобразуваме числото 123 в двоична система:
CODE
1
2
3
4
123 : 2 = 61 : 2 = 30 : 2 = 15 : 2 = 7 : 2 = 3 : 2 = 1 : 2 = 0
---       ---      ---      ---     ---     ---     ---
 
1        1        0        1       1       1       1  <- остатъци
                 <-------- Записваме ги в обратен ред.
Сега записваме остатъците в обратен ред: 1111011b
Да проверим: 1+2+8+16+32+64 = 123

Всъщност, тъй като деленето на 2 е лесно дори на ум, с малко упражнения и ако числата не са твърде големи, горната операция не е чак толкова трудна.

А като имаме двоичното представяне, лесно можем да го превърнем в шестнайсетично:
123 = 0111 1011b = $7b

Упражнение:
Задача 2: Преобразувайте дадените числа от десетична в двоична и шестнайсетична система. Направете обратно преобразуване в десетична за да проверите резултата:

423, 321, 111, 255, 128, 192, 65535, 65536








Отговори на задача1: 170, 85, 204, 51

Отговори на задача2:
  423 = 110100111b = $1а7
  321 = 101000001b = $141
  111 =   1101111b =  $6f
  255 =  11111111b =  $ff
  128 =  10000000b =  $80
  192 =  11000000b =  $c0
  65535 =  1111111111111111b =  $ffff
  65536 = 10000000000000000b = $10000



 << Предишна страница  


Ключови думи: asembler начинаещ първи стъпки програмиране


Още уроци от тази рубрика


 
  • Подобни теми от myLinks
 

 За автора: johnfound  
Занимавам се с програмиране от 1983 година. Експерт по програмиране на Delphi и Assembler. Разбира се понякога работя и на PHP, Perl и др.под. В момента се занимавам с програмиране на автоматизирани системи за производство в голяма немска фирма в България. От 2003г започнах проект с отворен код, целта на който е разработката на съвременна среда и средства за програмиране на асемблер под Windows, конкурентна на езиците от високо ниво. Подробности за проекта можете да намерите на: http://fresh.flatassembler.net
   
 1 посетител чете този урок (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 



IT-PLACE.NET © 2004 - 2008