![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Newbie
![]() Registriert seit: 22.08.2003
Beiträge: 6
|
![]() kann mir jemand einen tip geben wie ich in vb bcd->integer und integer->bcd wandeln kann??????
danke im voraus ![]() |
![]() |
![]() |
![]() |
#2 |
Hero
![]() |
![]() bcd->integer:
Decimal bcd1 Integer int1 BCD sind binärcodiert: 4 Bit pro Zahl Jetzt ist entscheidend, wieviele Bits die Zahl insgesamt hat. Der Rest einer Division durch 16 ergibt die letzte (niedrigste) Dezimalziffer. ---------------------------------- Besser Rückfrage: Verstehst du, wie eine BCD aufgebaut ist? Wenn ja, sollte die Programmierung kein Problem darstellen.
____________________________________
Bibel |
![]() |
![]() |
![]() |
#3 |
Newbie
![]() Registriert seit: 22.08.2003
Beiträge: 6
|
![]() sorry habs falsch formuliert
mein problem ist das in der 16-Bit integervariablen 4xbcd enthalten ist: z.b. bin: 0001|0001|0001|0001 ergibt bcd : 1111 integerwert : 4341 |
![]() |
![]() |
![]() |
#4 |
Veteran
Registriert seit: 17.05.2001
Alter: 57
Beiträge: 299
|
![]() Bei mir kommt da 4369 raus ...
|
![]() |
![]() |
![]() |
#5 |
Veteran
Registriert seit: 17.05.2001
Alter: 57
Beiträge: 299
|
![]() Sei v die Integer-Variable, dann ist
BCD_Wert = (v And 61440) / 4096 & (v And 3840) / 256 & (v And 240) / 16 & (v And 15) wobei x and y in diesem Fall bitweise maskiert (so nennt man das), d.h. v and 61440 maskiert alle ausser die obersten 4 Bit aus, v and 3840 maskiert aller ausser Bit 8 bis 11 und so weiter. (61440Dez = 1111 0000 0000 0000Bin, 3840Dez = 0000 1111 0000 0000, etc.) Man könnte das auch arithmetisch lösen (durch 16er Potenzen dividieren, Rest bestimmen ...) ist aber umständlich und dauert wesentlich länger (kommt auch auf den Compiler an). Sei v ein String, der eine 4-stellige BCD-Zahl darstellt, dann ist Int_Wert = Mid(v, 1, 1) * 4096 + Mid(v, 2, 1) * 256 + Mid(v, 3, 1) * 16 + Mid(v, 4, 1) Das Ganze gilt natürlich nur für 4-stell. BCD - bzw. 16bit Integer - Zahlen. |
![]() |
![]() |
![]() |
#6 |
Newbie
![]() Registriert seit: 22.08.2003
Beiträge: 6
|
![]() hi werner_Q
wennst die andere richtung auch so aussischüttelt wärs a hit besten dank im voraus ![]() ![]() |
![]() |
![]() |
![]() |
#7 |
Veteran
Registriert seit: 17.05.2001
Alter: 57
Beiträge: 299
|
![]() Freut mich, wenn Du Dich freust (
![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|