Малко помощ


0

Здравейте! Моля някой който владее синтаксиса на Java да ми подскаже какво недоразбирам във следният въпрос (заданието е следното):

1. Превърнете числата 151, 35, 43, 251 и -0,41 в двоична бройна
система.

Първите четри числа са ми ясни. Делиме числото на 2 и записваме остатъците, след което пишем остатъците във обратен ред и получаваме:

151 - 10010111(2)

35 - 100011(2)

43 - 101011(2)

251 - 11111011(2)

Но какво да правя със последното число (-0,41) ? 

Хем е отрицателно, хем е дробно, пък още и във двоична да го представя! Числата трябва да са явно 32 , първото ще е 1 защото числото е отрицателно, но как да определя какви ще са другите 8 които отговарят за порядъка и другите 23 които отговарят за мантисата? Моля обяснете ми дали аз нещо не разбирам и какво всъщност се иска от мене във тази задача?




Отговори



0

 Това е специфичен проблем за който трябва да прочетеш. Да разбереш какво е мантиса, експонента и т.н. Ето тук съм ршил точно такава задача на C#(езика е без значение за този проблем):

  https://github.com/vonko/VonkoProjects/blob/master/C%23/12.Numeral%20Systems%20-%20Homework/09.BinaryFloatingPoint/BinaryFloatingPoint.cs


от ivan.mihov1 (4988 точки)


-1

Това малко трудно ще ми помогне! Трябва ми просто числото във двоична система и малко подсказка как си го исчислил! Аз кода си го съхраних но за него дори компилатор нямам(


от Alexandr (4 точки)

0
 Ами не става просто. Съжалявам, сега нямам време пдробно да обясня кода. Но най-общо числото се разделя на цяла и дробна част. Има мантиса и експонента. Според това дали мантисата е между нула и едно или по голяма от едно(по абсолютна стойност) мантисата се нормализира надясно и наляво. Като цяло алгоритъма е доста абстрактен, но вземи прочети за мантиса и експонента за да ти се изясни.

от ivan.mihov1 (4988 точки)