Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 23:08

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
BeitragVerfasst: Sa Jan 21, 2006 15:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hallo.

Habe keine Besseren Titel gefunden ;)

Habe mir eine Chipkarte gekauft und steuer diese an.
bei dem Wert
1 gibt er kontakt 1 frei
2 gibt er kontakt 2 frei
3 gibt er kontakt 1 + 2 frei
4 gibt er kontakt 3 frei
5 gibt er kontakt 1 und 3 frei
6 gibt er kontakt 1 + 2 + 3 frei
usw...
wie berechne ich das am besten??

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 16:02 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 19, 2003 10:44
Beiträge: 991
Wohnort: Karlsfeld (nahe München)
also der letzte Wert ist komisch
ansonsten koennten die Kontakte fuer 2 hoch Kontaktnummer-1 stehen.

1 Dezimal ist = 001 Binaer
2 Dezimal ist = 010 Binaer
3 Dezimal ist = 011 Binaer
4 Dezimal ist = 100 Binaer
5 Dezimal ist = 101 Binaer
...

_________________
Danke an alle, die mir (und anderen) geholfen haben.
So weit... ...so gut


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 16:55 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Sieht für mich auch nach Binärcode aus. Und die 6 war wohl ein ausrutscher des Threadverfassers ;)

Aber gibts denn keine Doku zu der Karte?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 18:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Ich denke mal auch, dass es sich dabei um ein Bitset handelt.

Bevor die Frage kommt. Wie kannst du Bits setzen.
Code:
  1. Blah := Blah or $01;
  2. Blah := Blah or $02;
  3. Blah := Blah or $04;

Damit setzt du das erste, zweite und dritte Bit. Bitte beachte, dass Bits nicht Dezimalstellen sind.

Einzelne Bits kannst wie folgt abfragen.
Code:
  1. if Blah and $01 > 0 then
  2.   // Mach was.

Hier könntest du auch abfragen ob eines der angegebenen Bits gesetzt oder alle Bits. Das lässt sich ganz einfach mit der Abfrage regulieren.

Es gibt auch noch andere Möglichkeiten so etwas abzufragen. Zum Beispiel in einer Schleife.
Code:
  1. Idx := 0;
  2. while blah > 0 do begin
  3.   if Blah and $01 > 0 then
  4.     // Mach was mit Idx
  5.  
  6.   Idx := Idx +1; // Index um eins erhöhen.
  7.   Blah := Blah shr 1; // Alle Bits um 1 nach rechts verschieben
  8. end;

Damit würdest du zum Beispiel durch ein Bitset gehen und alle gesetzten Bits extrahieren. Es wird zwar immer nur das erste Bit geprüft aber durch den Index weiß man ziemlich genau welches es war. Und das dann auch dezimal.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 20:50 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ok Danke!

hab recht, nur wie kann ich extended in byte umwandeln ?! :-(

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 21:05 
Offline
Forenkatze
Benutzeravatar

Registriert: Mi Okt 22, 2003 18:30
Beiträge: 1945
Wohnort: Närnberch
Programmiersprache: Scala, Java, C*
Code:
  1. Byte(Extended)

;)

_________________
"Für kein Tier wird so viel gearbeitet wie für die Katz'."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 21:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ungültige Typumwandlund :-/

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 22:17 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
Ist Extended nicht ein Fließkommatyp - solltest da nicht besser ein Cardinal oder entsprechendes eingesetzt werden? Die lassen scih auch in Bytes Casten.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 23:19 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
naja super hab noch nen round reingesetzt ;)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 21, 2006 23:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Musst du die Bits in dem Extended abfragen oder ist der Wert der in dem Extended abgespeichert wird wichtig? Wenn der Wert wichtig ist, dann kannst du mit Round arbeiten. Wenn aber die Bits wichtig sind musst du es in etwa so machen.
Code:
  1. pByte(@ExtendedVar)^

Dabei wird aber der Inhalt benutzt und nicht der Wert. Das ist nicht unwichtig. Glaube ich. ;-)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 22, 2006 01:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also bei der karte gibts vier ports mit jeweils 8 kontakten.
Ich kann die kontakte ausschalten und anschalten indem ich die werte in nem array[1..4] of byte ändere ;)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 22, 2006 09:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Dann frage ich mich aber gerade wie du auf Extended kommst? Das isn Floatwert und ein 10 Bytiger.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 22, 2006 10:13 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Weil ich 2 hoch kontakt -1 rechnen soll?!
Und da ist halt so, dass ich Power(2, kontakt-1); rechne und Power bringt ein exdended zurück ;)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 22, 2006 10:28 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
aber für binärzahlen rechnet man doch 2 hoch nicht mit der FPU... 2 Hoch lässt sich doch ganz einfach mit shift right (shr), bzw. shift left (shl) bewerkstelligen. Jetzt frag mich grad nicht, in welche Richtung man auf Intel Maschienen schieben muss, aber probiers doch mal so: r := 1 shr (kontakt - 1). Wenn shr das falsche macht, dann probier shl.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jan 22, 2006 11:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Also habe jetzt shr reingemacht.
Nur funktioniert es nicht viel besser wie mit Power.
Also es geht, aber er überspringt da den ersten Kontakt.
also bei 2 shl (kontakt - 1) kommt 2 raus, sollte nich bei 2^0 immer 1 rauskommen?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 17 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.009s | 14 Queries | GZIP : On ]