Ja, det är väl ganska typiskt att man behöver dubbelt så många bitar när man jobbar med multiplikation (vare sig det gäller heltal eller fixtal), men när man väl kommit fram till resultatet går det ofta att stoppa in i samma antal bitar som de ingående termerna låg i. Fast ibland med decimalpunkten på en annan plats.
Man får ju inte använda fixtal på det viset att man begränsar sig till dess omfång bara för att man vill ha alla fixtal likadana. När en operation kräver flera bitar eller punkten på ett annat ställe får man ju skapa ett annan typ av fixtal som passar bättre.
antag att du vill repsresentera ström mellan 0 och 1000 mA.
fixtalet f10_6_milliampere ; funkar ju, men att göra så här är ju förkastligt: f10_6_ampere = f10_6_milliampere / 1000; för då får ju Ampere bara 6 bitars noggrannhet!
t.ex. 700mA = 1010111100.000000 mA blir 0000000000.101011 ampere.
Det hade ju varit förstås varit vettigare att t.ex. skriva:
f1_15_ampere = f10_6_milliampere*512 / 1000; eller
f0_16_ampere = f10_6_milliampere*1024 / 1000;
både f10_6_milliampere och f1.15_ampere förutsätter givetvis att värdet inte överstiger 1023.984 respektive 1.99997. Alla tal har en övre gräns, och den anpassas till sammanhanget.
Sunt förnuft i varje situation, med lite ordning (så man vet vad talet innehåller) brukar väl lösa de flesta problemen i sådana här lägen.
(EDIT:ändrat lite felaktiga siffror
