Дробно преобразуване

КОДИРАНЕ НА НОМЕРА

ДВОИЧНА БРОЙНА СИСТЕМА

Двоичната бройна система предполага, че всички числа се състоят от две възможни цифри: "1" и "0". Като цяло принципът на броене остава същият за позиционните бройни системи. Дробно число в десетичната система е дроб от "десет", а в двоична, съответно, дроб от "две". Примерен акаунт е показан в таблица 1.1 по-долу:

Примери за двоични числа

цели числадробни числа
двоична системадесетична системадвоична системадесетична система
0,0010,125
0,0100,250
0,0110,370
0,1000,500
0,1010,625
0,1100,750
0,1110,875
10001000

Има правила за преобразуване на двоични числа в десетични и обратно. Целите и дробните числа се преобразуват по различен начин.

Цяло числово преобразуване

Помислете за преобразуване на цяло число 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,

Нека добавим цифрите, като вземем предвид техните степени:

-1-2-3-4-5-6-7-8-90,

Нека добавим цифрите, като вземем предвид техните степени:

Резултатът е само приблизително равен на оригиналното число (вижте бележката по-горе)

Ако едно число съдържа цяло число и дробна част едновременно, то се преобразува на две стъпки: всяка от частите се преобразува отделно една от друга и след това се комбинира. Например числото 23.4310 ще бъде преобразувано, както следва:

Нека преобразуваме цялата част от 2310 в двоичната система:

Нека преобразуваме дробната част от 0,4310 в двоичната система:

×0,43×1.76
×0,86×1.52
×1.72×1.04
×1.44×0,08
×0,880,16
1.76и т.н.

За да получим крайното число, свързваме двете части заедно и получаваме:

Извършваме обратното преизчисляване, както е показано по-горе, чрез разширената форма на числото:

-1-2-3-4-5-6-7-8-9
1,

Ще добавим цифрите, като вземем предвид техните степени (за простота ще разгледаме само значими цифри, различни от нула):