
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Ihr zwei, Ich weiß nicht, was Ihr habt. Man braucht für die normale Ausgabe von unsigned Word über print keine extra Variablen: #print_un if x>=0 then goto pnum print (((x and &h7FFF) shr 1)or &h4000)/5;((x mod 10)+16) mod 10 return #pnum print x return Wenn man put braucht (z.B. für LCD an CC1 V1.1), dann braucht man eine extra Variable: #print_un2 if x and &h8000 then goto extended temp=x put &h30 + temp/10000 #p2 put &h30 + (temp/1000) mod 10 put &h30 + (temp/100) mod 10 put &h30 + (temp/10) mod 10 put &h30 + temp mod 10 return #extended temp=(((x and &h7FFF) shr 1)or &h4000)/5 put &h30 + temp/1000 temp=(((x mod 10)+16) mod 10) +(temp mod 1000)*10 goto p2 MfG André H. > Hallo, > > > So aufwendig und speicherfressend ist das nun auch wieder nicht. > > also ich habe den Code auf der M Unit 2.0 grade getestet und sowohl unter BASIC++ als auch unter CCBasic (1.33) kommen falsche Werte raus. Zum Beispiel: > > -32322 98750 > -32321 98751 > -32320 98752 > -32319 98753 > -32318 98754 > -32317 98755 > -32316 98756 > -32315 98757 > -32314 98758 > -32313 98759 > -32312 98760 > -32311 98761 > -32310 98762 > -32309 98763 > -32308 98764 > -32307 98765 > > Das ist doch falsch, man kann mit 16 Bit nur maximal Zahlen zwischen 0 uns _65535_ darstellen. Offensichtlich fehlt hierbei wohl ein großer Zahlenraum. Nach meiner Methode brauche ich deutlich mehr Speicher und Variablen und stelle alle Zahlen zwischen 0 und 65535 dar. > > Gruß, > > Stefan |
| Antwort schreiben |