INFO - FAQ - CC2-Forum - CCPro-Forum |
Hallo Andre^H! > 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 Diese Berechnung , ist das was ich gesucht habe , Vielen Vielen Dank!!!!!!!! > 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 hier geht besser "x<0", bei x and &h8000 habe ich keinen Sprung! > 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 > Ich wollte nicht , das mein Beitrag zur streiterei führt, ich wollte nur eine Lösung! Und die ist von AndreH gefunden worden. MfG JanPeter Ps:gibt es an der Tu Berlin ein Gästeseminar , über dieses Thema ? |
Antwort schreiben |