Not logged in. · Lost password · Register

tsunami
skankin´ foot
Avatar
Member since Jan 2003
352 posts
Subject: modulo 10?! Klausur 602
In Aufgabe 3b soll man eine Byte-Zahl modulo 10 (wa ja leider keine 2er-Potenz is  :-/ ) nehmen. Wir haben lange rumgetüfftelt aber keine Idee gehabt.
Ist vielleicht der eine oder andere auf die Lösung gekommen?!
once you had a dream
of oceans, and sunken cities;
memories of things you´ve never known
and you have never known...   (Michael Stipe)
leonidas
Avatar
Member since May 2003
298 posts
Die Aufgabe wurde schon mal in nem anderen thread (von vor einem Jahr oder so) bearbeitet. Dort wird einfach immer 10 abgezogen bis die Zahl kleiner ist als 10. Andererseits ist das etwas unbefriedigend, insbesondere weil in der Aufgabenstellung was von "effizient" steht....
Nothing's real until you feel
tsunami
skankin´ foot
Avatar
Member since Jan 2003
352 posts
thanx für die schnelle antwort...
inzwischen hab ich rausgefunden dass man auch mit idiv arbeiten könnte. Im Skript steht nämlich, dass idiv x, y sowohl x/y als auch x mod y berechnet. der Modulo-Rest steht dann einfach im %edx-Register. (Folie 90)  ;-)
once you had a dream
of oceans, and sunken cities;
memories of things you´ve never known
and you have never known...   (Michael Stipe)
leonidas
Avatar
Member since May 2003
298 posts
Wenn ich mich richtig errinere steht irgendwo in der Aufgabe dass man es mit einem ganz primitiven Prozessor zu tun hat, der keine direkten multiplikations- /divisionsbefehle kennt (und der nur der Einfachheit halber mit Intel-Syntax programmiert werden soll). So einfach kommst du also nicht davon (gibt ja immerhin auch 8 Punkte oder so...)
Nothing's real until you feel
urchichako
Ardillo
Member since Apr 2003
256 posts
irgendwo hier hat steppenwolf auch mal ne effizientere lösung gepostet; mit shiften und viel mystik ;-)
ging glaub so, dass man die zahl durch 160 teilt, dann durch 160/2... bis durch 10, bis sie kleiner 10 ist, und das ist dann das ergebnis
Those who find ugly meanings in beautiful things are corrupt without being charming. This is a fault.
Those who find beautiful meanings in beautiful things are the cultivated. For these there is hope.
fredator
Ca$h Carlo$
Avatar
Member since Mar 2003
953 posts
warum denn grade 160???  und ausserdem: wie willst du das mit dem teilen durch eine NICHT 2er Potenz anstellen? wir haben nur shift, add und sub .... oder haben wir jetzt doch idiv/imull .... weil mit imull faellt mir auch was schoenes ein ....
1.Sys: ZX Spectrum +2, 128K RAM, 0MB HD, Kassettendeck, RS232 Interface
2.Sys: Nintendo GameBoyAdvance SP, Metallicblau, 32bit CPU, Sound, Video/Mucke/NES Player
3.Sys: Sega Dreamcast, 128Bit, 2Mem Cards, 10+Spiele, SNES emulator, 2 (!) Controller
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
Vielleicht hilft euch das weiter?

http://pfaltin.dyndns.org/cgi-bin/forum/YaBB.…?board=tec…

Ich werd's mir schön klein mit ausdrucken und dann in der Klausur anschauen, falls nötig.
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
_flt
Niederbayer
Avatar
Member since Jul 2003
308 posts
Ich hab die Klausur seinerzeit mitgeschrieben und bin da dran mehr oder weniger verzweifelt. Hinterher hab ich da noch ewig dran rumgebissen und _die_ effiziente Methode gibts da nicht. In der Klausur (die hab ich btw nicht bestanden, dafuer dann die naechste  ;-) ) reichte einfach immer 10 abziehen. Ein bisschen effizienter gehts aber mit viel Schreibaufwand und eindeutig immer noch haesslich:
Wenn die Zahl laenger ist als [......................] 10bit immer 1000 abziehen, laenger als 7bit 100, laenger als 4bit 10, solange bis es eben nimmer geht.
Die Schreibarbeit rentiert sich in der Klausur auf keinen Fall.
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
OK, danke für die Einschätzung. Gibt etwas weniger zu drucken und eine etwas bessere Vorstellung der Punktevergabe... ;)
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
fredator
Ca$h Carlo$
Avatar
Member since Mar 2003
953 posts
uff, dann war meine loesung gestern ja gar nicht so falsch....

naja. die loesung von diesem checker _will_ ich gar nicht verstehen  :#:  :#:  :#:  da wirste ja bekloppt. ausserdem haette er vielleicht ein paar nette kommentare in seinen c code reintun koennen (wenns c++ is, is es mir auch egal, also keine klugscheissereien a la supiinfostudent mit 4.0 vordiplom bitte :-p)

Nachtrag: schaut euch mal die HP von dem Typen an, dann werdet ihr Angst kriegen....
1.Sys: ZX Spectrum +2, 128K RAM, 0MB HD, Kassettendeck, RS232 Interface
2.Sys: Nintendo GameBoyAdvance SP, Metallicblau, 32bit CPU, Sound, Video/Mucke/NES Player
3.Sys: Sega Dreamcast, 128Bit, 2Mem Cards, 10+Spiele, SNES emulator, 2 (!) Controller
This post was edited on 2004-09-28, 14:50 by fredator.
kabel
Member since Jan 2003
1009 posts
thx@Yves. der algorithmus ist wirklich gut  :-D
wobei er natürlich linear mit den dezimalstellen ist und nicht logarithmisch.
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
In reply to post #5
Quote by urchichako:
irgendwo hier hat steppenwolf auch mal ne effizientere lösung gepostet; mit shiften und viel mystik ;-)

lol, ich weiss gar nicht mehr, was ich da vor einem jahr an gedankenmuell produziert habe :]. auf jeden fall euch allen viel erfolg morgen!
ML
Avatar
Member since Oct 2003
66 posts
In reply to post #6
@fredator
> warum denn grade 160??? 

Schreib mal ne 10 binär und verschieb die ersten 4 bit nach hinten.
fredator
Ca$h Carlo$
Avatar
Member since Mar 2003
953 posts
ah 1x128 + 1x32 ....
1.Sys: ZX Spectrum +2, 128K RAM, 0MB HD, Kassettendeck, RS232 Interface
2.Sys: Nintendo GameBoyAdvance SP, Metallicblau, 32bit CPU, Sound, Video/Mucke/NES Player
3.Sys: Sega Dreamcast, 128Bit, 2Mem Cards, 10+Spiele, SNES emulator, 2 (!) Controller
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen