|
| "Svært" matematisk regnestykke. Fra : Jesper Hansen |
Dato : 14-11-05 12:32 |
|
Hej.
Både jeg, seks andre voksne og 2 børn er nu ude at svømme.
Min datter fik et nemt (for voksne) hovedregnestykke (20-45), men da jeg
ville anskueliggøre for hende hvordan hun kunne regne det ud på papir,
så jeg til min fortvivlelse at det ikke var rigtigt - Tarzan er
pludselig ikke så fantastisk længere!
Her er det:
20
-
45
--
??
Problemet er at "låne" fra 2'eren. Men jeg kan bare ikke huske
nogensinde at have hørt man ikke kunne regne sådan med den slags stykker
(ligesom at dividere med 0(?))
Mvh
Jesper.
| |
Martin Larsen (14-11-2005)
| Kommentar Fra : Martin Larsen |
Dato : 14-11-05 14:34 |
|
Jesper Hansen fortalte:
> Hej.
>
> Både jeg, seks andre voksne og 2 børn er nu ude at svømme.
>
> Min datter fik et nemt (for voksne) hovedregnestykke (20-45), men da
> jeg ville anskueliggøre for hende hvordan hun kunne regne det ud på
> papir, så jeg til min fortvivlelse at det ikke var rigtigt - Tarzan er
> pludselig ikke så fantastisk længere!
>
> Her er det:
>
> 20
> -
> 45
Du er nødt til at starte med at vurdere hvilket af tallene der er størst
(uden fortegn) og så fx som i dette tilfælde ombytte og huske minus.
Mvh
Martin
--
Menneskehedens kulturelle og teknologiske udvikling, som vi kender den,
er uløseligt forbundet med den frie og ubegrænsede ret til kopiering
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 13:53 |
|
>
> Du er nødt til at starte med at vurdere hvilket af tallene der er størst
> (uden fortegn) og så fx som i dette tilfælde ombytte og huske minus.
>
Ok, se svar til Aage.
Tak for det.
Jesper.
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 14:37 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
> Min datter fik et nemt (for voksne) hovedregnestykke (20-45), men da
> jeg ville anskueliggøre for hende hvordan hun kunne regne det ud på
> papir, så jeg til min fortvivlelse at det ikke var rigtigt
20 er mindre end 45, så resultatet bliver et negativt tal. For at
finde størrelsen af det negative tal må man bruge reglen
a-b = -(b-a)
og altså i dette tilfælde omskrive 20-45 = -(45-20). Subtraktionen her
udfører man nemt i hovedet: 45-20=25, og resultatet er altså -25.
Reglen kan forstås ved at se på en tallinje
_____-30__-25__-20__-15__-10___-5___0____5___10___15___20___25___30_____
|------->----->-----|
|--------<-------<---------<----------<------|
Vi starter fra 0 og går først 20 enheder mod højre, og bagefter 45
enheder mod venstre. Hvor langt fra 0 ender vi? Afstanden er
tydeligvis lig med den del af de 45 venstreskridt der _ikke_
overlapper med de 20 højreskridt. Altså 45 skridt i alt minus de 20
skridts overlap.
> 20
> -
> 45
> --
> ??
Den normale papir-og-blyant-fremgangsmåde duer ikke når resultatet
bliver et negativt tal. Man er nødt til at sammenligne og bytte om før
man går i gang. Ellers bliver man nødt til at blive ved med at låne
fra alle de usynlige nuller til venstre for '20', og så bliver svaret
.....99999975
(med uendeligt mange nitaller). Og det skal man nok ikke begynde at
kaste efter børn i de små klasser, selvom det faktisk er en direkte
anskueliggørelse af hvordan computere repræsenterer negative tal
internt.
> Problemet er at "låne" fra 2'eren. Men jeg kan bare ikke huske
> nogensinde at have hørt man ikke kunne regne sådan med den slags
> stykker (ligesom at dividere med 0(?))
Der gik faktisk et pænt stykke tid i matematikhistorien før negative
tal blev rigtigt accepterede som fuldgyldige svar på regneopgaver.
Endnu i 1500-tallet var der en tendens til at omtale negative svar som
"falske" eller "indbildte" løsninger.
--
Henning Makholm "Nemo enim fere saltat sobrius, nisi forte insanit."
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 13:50 |
|
> 20 er mindre end 45, så resultatet bliver et negativt tal. For at
> finde størrelsen af det negative tal må man bruge reglen
>
> a-b = -(b-a)
Ok, denne regel er det een "man" skulle kende - jeg kan d'atte huske den
fra min skolebarndom/Gymnasietid (mellem Julebryggene )?
>
> og altså i dette tilfælde omskrive 20-45 = -(45-20). Subtraktionen her
> udfører man nemt i hovedet: 45-20=25, og resultatet er altså -25.
Ja, men det var for at anskueliggøre(/besværliggøre) det på et stykke papir.
>
> Reglen kan forstås ved at se på en tallinje
>
> _____-30__-25__-20__-15__-10___-5___0____5___10___15___20___25___30_____
>
> |------->----->-----|
> |--------<-------<---------<----------<------|
>
> Vi starter fra 0 og går først 20 enheder mod højre, og bagefter 45
> enheder mod venstre. Hvor langt fra 0 ender vi? Afstanden er
> tydeligvis lig med den del af de 45 venstreskridt der _ikke_
> overlapper med de 20 højreskridt. Altså 45 skridt i alt minus de 20
> skridts overlap.
Jeps, det er rent faktisk sådan en "tallinie" de arbejder med i klassen,
jeg ville bare være smart og "løfte" opgaven
Tak for forklaringen.
Mvh
Jesper
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 15:16 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
>> 20 er mindre end 45, så resultatet bliver et negativt tal. For at
>> finde størrelsen af det negative tal må man bruge reglen
>> a-b = -(b-a)
> Ok, denne regel er det een "man" skulle kende - jeg kan d'atte huske
> den fra min skolebarndom/Gymnasietid (mellem Julebryggene )?
Det skulle jeg mene. Den er temmelig grundlæggende og skal bruges hele
tiden når man manipulerer komplicerede formler.
--
Henning Makholm "Slip den panserraket og læg
dig på jorden med ansigtet nedad!"
| |
Aage Andersen (14-11-2005)
| Kommentar Fra : Aage Andersen |
Dato : 14-11-05 14:38 |
|
"Jesper Hansen" >
> Her er det:
>
> 20
> -
> 45
> --
> ??
Da 45 er mere end 20 bliver resultatet negativt. Du skal derfor trække 20
fra 45 og sætte et minustegn foran.
Aage
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 13:52 |
|
>
>
> Da 45 er mere end 20 bliver resultatet negativt. Du skal derfor trække 20
> fra 45 og sætte et minustegn foran.
>
Ok men hvis det nu er:
347754882648289874
-
347754982648289000
Er det jo ikke lige til at overskue, så jeg mangler bare at erindre man
skulle kunne overskue det når man regnede slige stykker på papir.
Mvh
Jesper.
| |
Martin Larsen (14-11-2005)
| Kommentar Fra : Martin Larsen |
Dato : 14-11-05 15:02 |
|
Jesper Hansen fortalte:
>> Da 45 er mere end 20 bliver resultatet negativt. Du skal derfor
>> trække 20 fra 45 og sætte et minustegn foran.
>>
>
> Ok men hvis det nu er:
>
> 347754882648289874
> -
> 347754982648289000
>
> Er det jo ikke lige til at overskue, så jeg mangler bare at erindre
> man skulle kunne overskue det når man regnede slige stykker på papir.
Jo, det er let. Når tallene er lige "brede" aftastes de fra forenden
indtil der er forskel, og det største er nu det med det største ciffer.
Mvh
Martin
--
Docendo discimus
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 14:10 |
|
>
> Jo, det er let. Når tallene er lige "brede" aftastes de fra forenden
> indtil der er forskel, og det største er nu det med det største ciffer.
>
> Mvh
> Martin
Ja, ok. Jeg har bare *aldrig* mødt en opgave hvor jeg skulle gøre det,
men ok lommeregnerne har selvfølgelig gjort deres indtog i en tidlig alder.
Mvh
Jesper.
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 15:14 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
> Ok men hvis det nu er:
>
> 347754882648289874
> -
> 347754982648289000
> Er det jo ikke lige til at overskue,
Jo, det er lige til at overskue.
1. Først tæller man antallet af cifre (til venstre for kommaet) i
begge tal. Hvis de har forskelligt antal cifre, er det længste det
største.
2. Ellers går man begge tal igennem fra venstre mod højre og parrer
cifre sammen. Første gang man finder en forskel har man også det
største tal: det er det der har det største ciffer på den første
plads hvor der er forskel.
--
Henning Makholm "I ... I have to return some videos."
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 14:33 |
|
> 1. Først tæller man antallet af cifre (til venstre for kommaet) i
> begge tal. Hvis de har forskelligt antal cifre, er det længste det
> største.
>
> 2. Ellers går man begge tal igennem fra venstre mod højre og parrer
> cifre sammen. Første gang man finder en forskel har man også det
> største tal: det er det der har det største ciffer på den første
> plads hvor der er forskel.
>
Ja ok, jeg kan også godt se det, men ville du gøre det som det første
hvis du fik dette regnestykke smidt i hovedet:
347754882648289874
-
347754982648289000
Ville du så ikke bare begynde at regne løs?
I fald du først ville checke om det øvserste nu var størst, må det jo så
bare være et hul hos mig - og venner og kolleger (hvoraf to arbejder med
finansiel software)
Mvh
Jesper.
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 15:19 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
>> Jo, det er let. Når tallene er lige "brede" aftastes de fra forenden
>> indtil der er forskel, og det største er nu det med det største
>> ciffer.
> Ja, ok. Jeg har bare *aldrig* mødt en opgave hvor jeg skulle gøre det,
Det har du med garanti. Sådan gør du hver gang du står i supermarkedet
og skal finde ud af om den ene eller den anden flaske opvaskemiddel er
billigst. Du er bare så vant til at gøre det at du ikke længere er
opmærksom at sammenligningen kan opdeles i enkelte operationer.
--
Henning Makholm "Hell, every other article you read
is about the Mars underground, and how
they're communists or nudists or Rosicrucians --"
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 14:28 |
|
> Det har du med garanti. Sådan gør du hver gang du står i supermarkedet
> og skal finde ud af om den ene eller den anden flaske opvaskemiddel er
> billigst. Du er bare så vant til at gøre det at du ikke længere er
> opmærksom at sammenligningen kan opdeles i enkelte operationer.
>
Ok, jeg mener nu et regnestykke som jeg skulle skrive op. Her kan jeg
ikke juske at jeg har lavet om på tæller og nævner ifm. subtraktion. Men
det kan da også bare være det er fordi det er mange år siden jeg sidst
har skullet gøre det.
Jeg medgiver dig at jeg af og til i min tilværelse har skullet tage
stilling til hvilke af to tal der havde den højeste værdi.
Mvh
Jesper.
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 15:38 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
> Ok, jeg mener nu et regnestykke som jeg skulle skrive op. Her kan
> jeg ikke juske at jeg har lavet om på tæller og nævner
> ifm. subtraktion.
Ikke at det har noget med sagen at gøre, men begreberne "tæller" og
"nævner" bruges om brøker, ikke om subtraktion.
--
Henning Makholm "I've been staying out of family
conversations. Do I get credit for that?"
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 16:02 |
|
> Ikke at det har noget med sagen at gøre, men begreberne "tæller" og
> "nævner" bruges om brøker, ikke om subtraktion.
>
>
Ja der er ikke noget at sige til jeg ikke kan trække to tal fra hinanden
Jesper.
| |
Henning Makholm (14-11-2005)
| Kommentar Fra : Henning Makholm |
Dato : 14-11-05 15:41 |
|
Scripsit Jesper Hansen <noone@nowhere.com>
> Ja ok, jeg kan også godt se det, men ville du gøre det som det første
> hvis du fik dette regnestykke smidt i hovedet:
> 347754882648289874
> -
> 347754982648289000
Jeg ville bemærke at de to tal temmelig tæt på hinanden og derfor give
mig til at undersøge nøjere hvilket fortegn resultatet skal have.
> I fald du først ville checke om det øvserste nu var størst, må det jo
> så bare være et hul hos mig - og venner og kolleger (hvoraf to
> arbejder med finansiel software)
De to har jo nok maskiner til at udføre deres udregninger for sig.
--
Henning Makholm "The Board views the endemic use of PowerPoint
briefing slides instead of technical papers as an
illustration of the problematic methods of technical communicaion at NASA."
| |
Per Andreasen (14-11-2005)
| Kommentar Fra : Per Andreasen |
Dato : 14-11-05 16:12 |
|
Hvis det drejer sig om en pædagogisk anskueliggørelse af problemet, kunne du
jo bruge temperatur. "Det er 20 grader varmt. Et halvt år efter er det 45
grader koldere. Hvad er temperaturen nu? eller
Du er i byen og ser noget, du gerne vil have. Det koster 45 kr., og du har
kun 20 kr. med. Hvad mangler du?
mvh Per
Andreasen
"Jesper Hansen" <noone@nowhere.com> skrev i en meddelelse
news:437883b7$1@news.wineasy.se...
> Hej.
>
> Både jeg, seks andre voksne og 2 børn er nu ude at svømme.
>
> Min datter fik et nemt (for voksne) hovedregnestykke (20-45), men da jeg
> ville anskueliggøre for hende hvordan hun kunne regne det ud på papir, så
> jeg til min fortvivlelse at det ikke var rigtigt - Tarzan er pludselig
> ikke så fantastisk længere!
>
> Her er det:
>
> 20
> -
> 45
> --
> ??
>
> Problemet er at "låne" fra 2'eren. Men jeg kan bare ikke huske nogensinde
> at have hørt man ikke kunne regne sådan med den slags stykker (ligesom at
> dividere med 0(?))
>
> Mvh
>
> Jesper.
| |
Jesper Hansen (14-11-2005)
| Kommentar Fra : Jesper Hansen |
Dato : 14-11-05 16:16 |
|
Per Andreasen wrote:
> Hvis det drejer sig om en pædagogisk anskueliggørelse af problemet, kunne du
> jo bruge temperatur. "Det er 20 grader varmt. Et halvt år efter er det 45
> grader koldere. Hvad er temperaturen nu? eller
> Du er i byen og ser noget, du gerne vil have. Det koster 45 kr., og du har
> kun 20 kr. med. Hvad mangler du?
Selve opgaven *var* egentlig pædagogisk nok (en mand køber en hest til
4500 og sælger den til 2000 kr, eller noget i den stil), det var bare
mig der skulle komplicere det yderligere.
Derudover arbejder de også med "tallinier" som Henning M viser.
Men ellers nogle gode konkrete forslag, tak for det.
Mvh
Jesper
| |
ingenmail (14-11-2005)
| Kommentar Fra : ingenmail |
Dato : 14-11-05 20:28 |
|
14 Nov 2005 13:31:51 +0200, Jesper Hansen <noone@nowhere.com> skrev:
> Hej.
>
> Både jeg, seks andre voksne og 2 børn er nu ude at svømme.
>
> Min datter fik et nemt (for voksne) hovedregnestykke (20-45), men da jeg
> ville anskueliggøre for hende hvordan hun kunne regne det ud på papir,
> så jeg til min fortvivlelse at det ikke var rigtigt - Tarzan er
> pludselig ikke så fantastisk længere!
>
> Her er det:
>
> 20
> -
> 45
> --
> ??
>
> Problemet er at "låne" fra 2'eren. Men jeg kan bare ikke huske
> nogensinde at have hørt man ikke kunne regne sådan med den slags stykker
> (ligesom at dividere med 0(?))
>
> Mvh
>
> Jesper.
Det er intet problem:
20
- 45
-----
..99975
Som du ser, kommer det en masse foranstillede 9'taller, hvilket jo betyder tallet må være negativ.
Du mangler hele tiden éen, og den låner du fra næste ciffer.
Du gør nu det, at du inverterer tallet, for at få tallet postivt. Altså, du trækker hver ciffer fra 9 i 9:
9-5 = 4
9-7 = 2
9-9 = 0
og i alt fås:
00024
Hertil lægger du éen, og får 00025.
Altså, resultatet er -00025.
Den metode, som skitseres ovenfor, er præcis den som lommeregneren bruger, hvis den regner binært.
Når du er træt af, at trække fra, og huske alle disse låneregler, så kunne du overveje følgende:
En "tæller" tæller på første ciffer til 8, midterste ciffer til 7, sidste ciffer til 5. Der lægges
en til for hver ciffer. Det giver at 0 er 000, 1 er 111, 2 er 222, 5 er 550 og 7 er 702, 8 er 013.
Tallene kommer i en ny rækkefølge - og her kan du subtrahere uden mente/borrow fra forrige cifre.
Det kan også bruges i nogen regnemaskiner. Men hvordan ganger og deler de mon??
| |
Jens Peter Rosenkvis~ (14-11-2005)
| Kommentar Fra : Jens Peter Rosenkvis~ |
Dato : 14-11-05 20:48 |
|
ingenmail wrote:
> Det kan også bruges i nogen regnemaskiner. Men hvordan ganger og deler de mon??
Det er ikke så svært at lave en funktion der ganger i
maskininstruktioner (har selv gjort det :P). Det kan gøres ved at lave
en løkke som skubber tallet et bit for hver iteration.
Det er nok ikke den mest effektive måde, men det fungerer.
--
Why do fireflies die so soon?
http://www.jensercube.dk/sig.asp
| |
Bertel Lund Hansen (14-11-2005)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 14-11-05 21:37 |
|
Jens Peter Rosenkvist skrev:
> Det er ikke så svært at lave en funktion der ganger i
> maskininstruktioner (har selv gjort det :P). Det kan gøres ved at lave
> en løkke som skubber tallet et bit for hver iteration.
> Det er nok ikke den mest effektive måde, men det fungerer.
Mig bekendt er det den måde man gør det på. Der findes
naturligvis maskininstruktioner der f.eks. ganger med én kommando
- men den udløser jo et sæt mikroinstruktioner som er nødt til at
benytte en brugbar algoritme.
I hvert fald mens vi venter på kvantecomputerne.
--
Bertel
http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
Ulrik Smed (15-11-2005)
| Kommentar Fra : Ulrik Smed |
Dato : 15-11-05 18:25 |
|
Bertel Lund Hansen wrote:
> Jens Peter Rosenkvist skrev:
>
>> Det er ikke så svært at lave en funktion der ganger i
>> maskininstruktioner (har selv gjort det :P). Det kan gøres
>> ved at lave en løkke som skubber tallet et bit for hver
>> iteration.
>> Det er nok ikke den mest effektive måde, men det fungerer.
>
> Mig bekendt er det den måde man gør det på. Der findes
> naturligvis maskininstruktioner der f.eks. ganger med én
> kommando - men den udløser jo et sæt mikroinstruktioner som er
> nødt til at benytte en brugbar algoritme.
Mange processorer har en hardware multiplier der kan gøre det på 1 eller 2
clockcycles, de kører vist ikke microkode så vidt jeg ved.
--
Ulrik Smed
Aarhus, Denmark
| |
ingenmail (17-11-2005)
| Kommentar Fra : ingenmail |
Dato : 17-11-05 22:48 |
|
Du kan klare to bit af gangen, hvis du udover at addere, også kan subtrahere, og flytte dit tal en position (gange med to).
Du har så bare en offset fejl, som du kompenserer for med en enkelt add, for hele multiplikationen. Du kan nok også gøre det uden add.
I "mikroprogrammet", hvis de stadig bruger en sådan, læser de nok to bits af gangen, og koder til enten add, sub, eller shift, eller bare nop. ADD/SUB kan laves med samme enhed, bare ved at invertere indgangene (inklusiv mente). Forsinkelsen er derfor mindre, end i to add's. Du kan også kode XOR'en og shifteren ind i logikken i ADD'eren, og den bliver så noget hurtigere, faktisk omtrent ligeså hurtig, som en normal ADD.
Forsinkelsen er dermed ca. halvdelen, af en "normal" multiplier, som den du lavede. Indgangen for næste ADD, kræver udgangen fra forrige, og der er dataafhængighed. Da man jo nok havde lavet en hurtigere CPU, hvis man kunne klare dataafhængigheden hurtigere, så vil man nok ikke kunne opnå større hastighed, end du kan opnå i programmet, gange to.
Du kan også lave en træstruktur, så højden ikke er så stor. Skal 16 tal adderes, udregnes de som (((a+b)+(c+d))+((e+f)+(g+h)))+(((i+j)+(k+l))+((m+n)+(o+p))) og derved er højden kun 4 adders. Du laver alle "shiftede" indgange på en gang, og sætter and gates på. Nu er forsinkelsen mindre. Også her, kan du bruge trikket med add/sub, ved at invertere indgange, samt shift. Så er dybden lidt mindre, og du skal bruge færre adders.
I praksis, har man ofte en struktur som ovenstående parallel adder, og så sættes noget logik på, der kan klare shift, eller invert (og lægge en til carry). Den pågældende logik, kan indbygges i din adder. Det er relativ simpelt, at dekode din værdi der skal ganges med, til om den skal addere, subtrahere, eller gange med 2.
Den parallele kan du ikke så godt ligge i et mikroprogram. Men hvem ved?? Hvis det er en VLIW processor, er det jo nok muligt. Også ved en ikke VLIW, kan det ske, at den internt laver det samme, og kun indsætter forsinkelserne når det er dataafhængighed mellem processorerne. Her, er jo ikke nogen dataafhængighed, og så går det hurtig. Så er det jo lidt stadig et mikroprogram, og du kunne opnå samme maskinkoden, hvis du havde haft de rette indstruktioner. Men det vil nok gå lidt langsommere, da datavejene skal multiplexes, så de sættes sammen med den rette ALU. Det er dog ikke langsom, da man kan prioritere, så den kritiske vej, sider på allerførst. Og så er omtrent samme hastighed.
Ganger du med en konstant, kan det gå endnu hurtigere.
Mon, 14 Nov 2005 21:37:10 +0100, Bertel Lund Hansen <nospamfilius@lundhansen.dk> skrev:
> Jens Peter Rosenkvist skrev:
>
> > Det er ikke så svært at lave en funktion der ganger i
> > maskininstruktioner (har selv gjort det :P). Det kan gøres ved at lave
> > en løkke som skubber tallet et bit for hver iteration.
> > Det er nok ikke den mest effektive måde, men det fungerer.
>
> Mig bekendt er det den måde man gør det på. Der findes
> naturligvis maskininstruktioner der f.eks. ganger med én kommando
> - men den udløser jo et sæt mikroinstruktioner som er nødt til at
> benytte en brugbar algoritme.
>
> I hvert fald mens vi venter på kvantecomputerne.
>
> --
> Bertel
> http://bertel.lundhansen.dk/ http://fiduso.dk/
| |
ingenmail (16-11-2005)
| Kommentar Fra : ingenmail |
Dato : 16-11-05 23:27 |
|
Det svære, er ikke at gange og dele, i totalssystemet.
Men i et talsystem, hvor du regner lidt specielt, og har f.eks. et syvtalssystem, for bagerste ciffer, et 8 talssystem for midterste, og et 5 talssystem for første. Her er ikke nogen mente overflow, og derfor kan du parallelisere de fleste ting. Også gange, der jo bare er flere plusser.
Du får dog problemer, når du vil til at gange og dele. Kan nogen dele, i et sådant talsystem?
Det anvendes ofte, i hurtige processorer til lidt specielle formål, f.eks. høreapparater, mobiltelefoner, signalprocessorer, osv.
Det er her utroligt nemt at gange tal sammen, og det gøres med et enkelt lille tabelopslag (eller flere seperate).
Man har da et antal bits, som samlet tæller i f.eks. syvtalssystemet, et antal der tæller i 8 tals-systemet osv. Antages, vi højst vil have 4 bit, kan bruges (16,13,11,9,7,5).
Eneste krav, er at de ikke må have fælles divisorer.
Vælges op til 5 bit (tabel/PAL opslag på højst 32 positioner), fås op til 41-42 bits opløsning.
Mon, 14 Nov 2005 20:47:51 +0100, Jens Peter Rosenkvist <jensercube@ofir.dk> skrev:
> ingenmail wrote:
>
> > Det kan også bruges i nogen regnemaskiner. Men hvordan ganger og deler de mon??
>
> Det er ikke så svært at lave en funktion der ganger i
> maskininstruktioner (har selv gjort det :P). Det kan gøres ved at lave
> en løkke som skubber tallet et bit for hver iteration.
> Det er nok ikke den mest effektive måde, men det fungerer.
>
> --
> Why do fireflies die so soon?
> http://www.jensercube.dk/sig.asp
| |
Torben Ægidius Mogen~ (15-11-2005)
| Kommentar Fra : Torben Ægidius Mogen~ |
Dato : 15-11-05 16:59 |
|
ingenmail <ingenmail@ingenmail.dk> writes:
> Det er intet problem:
> 20
> - 45
> -----
> .99975
>
> Som du ser, kommer det en masse foranstillede 9'taller, hvilket jo
> betyder tallet må være negativ.
> Du mangler hele tiden éen, og den låner du fra næste ciffer.
>
> Du gør nu det, at du inverterer tallet, for at få tallet
> postivt. Altså, du trækker hver ciffer fra 9 i 9:
> 9-5 = 4
> 9-7 = 2
> 9-9 = 0
>
> og i alt fås:
> 00024
>
> Hertil lægger du éen, og får 00025.
>
> Altså, resultatet er -00025.
>
> Den metode, som skitseres ovenfor, er præcis den som lommeregneren
> bruger, hvis den regner binært.
De fleste "rigtige" computere gør noget lignende, det du beskriver,
når de regner med heltal. Men de bruger totalssystemet
(tokompletemttal) i stedet for titalssystemet (hvor det, du beskriver,
er tikomplementtal). Men de fleste lommeregnere bruger separate
fortegn og sammenligner de absolutte størrelser, inden de laver en
subtraktion (ligesom mennesker som regel gør det).
> Det kan også bruges i nogen regnemaskiner. Men hvordan ganger og
> deler de mon??
Som nævnt, bruger lommeregnere separate fortegn. Da de også regner
med kommatal har de endvidere en position for kommaet (en eksponent).
På matematiske lommeregnere er eksponenten typisk fra -99 til +99,
mens den på "almindelige" lommeregnere med otte cifre typisk er fra 0
til 8, så kommaet kan placeres foran ethvert ciffer eller bag det
sidste.
Hvis du skal lægge to tal kommatal sammen, skal du først sørge for at
rykke tallene, så de har kommaet samme sted (dvs. gøre eksponenten
ens). Derefter lægges de sammen normalt (eller trækkes fra hinanden,
hvis fortegnene er forskellige). Hvis man ganger to tal med hinanden,
lægges eksponenterne sammen og de to tal uden eksponent ganges
normalt. Ved division trækkes eksponenterne fra hinanden og tallene
uden eksponent divideres normalt. Gangestykker klares på ca. samme
måde, som man gør i hånden, dvs. ved at gange med hvert ciffer
forskudt og derefter lægge sammen. Division foregår også som på
papir, dog sørger man for i første skridt at forskyde divisoren, så
den ligger mellem T og T/10, hvor T er "tælleren". Eksponenten
justeres tilsvarende.
Torben
| |
|
|