Дробно преобразуване
КОДИРАНЕ НА НОМЕРА
ДВОИЧНА БРОЙНА СИСТЕМА
Двоичната бройна система предполага, че всички числа се състоят от две възможни цифри: "1" и "0". Като цяло принципът на броене остава същият за позиционните бройни системи. Дробно число в десетичната система е дроб от "десет", а в двоична, съответно, дроб от "две". Примерен акаунт е показан в таблица 1.1 по-долу:
Примери за двоични числа
цели числа | дробни числа | ||
двоична система | десетична система | двоична система | десетична система |
0,001 | 0,125 | ||
0,010 | 0,250 | ||
0,011 | 0,370 | ||
0,100 | 0,500 | ||
0,101 | 0,625 | ||
0,110 | 0,750 | ||
0,111 | 0,875 | ||
1000 | 1000 |
Има правила за преобразуване на двоични числа в десетични и обратно. Целите и дробните числа се преобразуват по различен начин.
Цяло числово преобразуване
Помислете за преобразуване на цяло число 100 от десетична в двоична система. За пояснение всеки номер ще има индекс, обясняващ в коя система е номерът. Целите числа се превеждат чрез последователно деление на базата за броене, в този случай с "2". Числото се разделя изцяло с изчисляване на остатъка (виж фиг. 1). Полученото частно се дели отново на "2" и така нататък, докато последното частно е по-малко от основата на преброяването, т.е. "2" (фиг. 1.1).
Фиг. 1.1. Преобразуване на цяло число от десетична в двоична система
Получените остатъци са нужните ни цифри. Записваме "1" и след това нашите останки, започвайки с последния, който се оказа. В резултат на това имаме: 10010 → 11001002
Обратно изчислениепреобразуването на двоично число в десетично се извършва въз основа на разширената форма на числото. Нека обратно преобразуваме полученото по-горе число в десетична форма. Номерираме цифрите на номера, започвайки от най-младия:
След това умножете освобождаването от отговорност по основата на сметката на степен на нейния пореден номер и сумирайте резултата:
1 2 6 + 1 2 5 + 0 2 4 + 0 2 3 + 1 2 2 + 0 2 1 + 0 2 0 = 64 + 32 + 4 = 10010
Както виждаме, преобразуването на цели числа между двоична и десетична система е абсолютно точно. Следователно използването на цели числа в програмирането е за предпочитане.
Преобразуване на дробни числа
Дробните числа се преобразуват чрез други методи, а именно умножение. Умножаваме само дробната част, докато изчезне. Нека демонстрираме преобразуването на числото 0,12510 и 0,110 в двоичната бройна система:
× | 0,125 | × | 0,1 |
× | 0,250 | × | 0,2 |
× | 0,500 | × | 0,4 |
1000 | × | 0,8 | |
× | 1,6* | ||
× | 1.2 | ||
0,4 |
Ориз. 1.2. Преобразуване на дробно число от десетична в двоична система
(* - само дробната част от числото подлежи на умножение, следователно - 0,6 2 \u003d 1,2)
Цифрите на двоично число ще бъдат целите части на числата, образувани по време на умножението. Първата нула в оригиналното число е нула в целочислената част, а останалите са битове от двоичното число. Следователно имаме 0,12510 → 0,0012. Във втория случай има зацикляне на изчисленията, така че изчисленията дават двоично число с безкрайна дробна част (ирационално число), което се записва по следния начин 0,000110011(0011) ... (виж Фиг. 1.2).
Тъй като в компютърната памет могат да бъдат всички числасамо рационални, тогава полученото число трябва да се закръгли до дадена точност (нужния брой цифри в клетките на паметта на компютъра), което въвежда грешка. По този начин не всички дробни числа, въведени в десетичната бройна система, са представени точно в паметта на компютъра.
Обратният превод се извършва по същия начин, както при целите числа, но степените в израза ще бъдат отрицателни:
-1 | -2 | -3 |
0, |
Нека добавим цифрите, като вземем предвид техните степени:
Нека добавим цифрите, като вземем предвид техните степени:
Резултатът е само приблизително равен на оригиналното число (вижте бележката по-горе)
Ако едно число съдържа цяло число и дробна част едновременно, то се преобразува на две стъпки: всяка от частите се преобразува отделно една от друга и след това се комбинира. Например числото 23.4310 ще бъде преобразувано, както следва:
Нека преобразуваме цялата част от 2310 в двоичната система: |
Нека преобразуваме дробната част от 0,4310 в двоичната система:
× | 0,43 | × | 1.76 | |
× | 0,86 | × | 1.52 | |
× | 1.72 | × | 1.04 | |
× | 1.44 | × | 0,08 | |
× | 0,88 | 0,16 | ||
… | ||||
1.76 | и т.н. |
За да получим крайното число, свързваме двете части заедно и получаваме:
Извършваме обратното преизчисляване, както е показано по-горе, чрез разширената форма на числото:
-1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 |
1, |
Ще добавим цифрите, като вземем предвид техните степени (за простота ще разгледаме само значими цифри, различни от нула):