8 Bit CRC-Check (Umsetzung C->Java)

Status
Nicht offen für weitere Antworten.
W

wildbret

Gast
Hallo, ich bin grade dabei ein Programm von C in Java umzusetzen und hänge an der Generierung des CRC-Bytes.

Mein Problem ist folgender Algorithmus.
Wenn ich ihn richtig verstehe, dann prüft das IF in der Schleife, ob die erste Stelle des Bytes 1 ist. Wenn ja wird um 1 geschoben und das exklusiv oder gemacht. Wenn das erste Bit 0 ist wird nur geschoben.
Das ganze logischerweise 8 mal bis das Byte durch ist.

Code:
BYTE CProtocoll::CRC_update(BYTE crc, BYTE data)
{
		crc = crc ^ data;
	for (int i = 0; i < 8; i++) {
		if (crc & 0x01)
			crc = (crc >> 1) ^ 0x8C;
		else
			crc >>= 1;
	}
	return crc;
}

BYTE CProtocoll::CRC_calculate(BYTE *p_Buffer,BYTE length)
{
	BYTE checksum = 0x00;

	for (int i=0; i<length; i++) { 
 		checksum=CRC_update(checksum,p_Buffer[i]); 
	}
	return checksum;
}

Nun zur meiner Umsetzung in Java

Code:
public int CRC_update(int crc, short data) {
	crc = crc ^ data;		
	for (int i = 0; i < 8; i++) {
		if (crc == 0x01) crc = (crc >> 1) ^ 0x8C; //Bitvergleich
		else crc >>= 1;
	}	
	return crc;
}
	
public int CRC_calculate(short p_Buffer[],short length) {		
	int checksum = 0x00;		
	for (int i=0; i<length; i++) { 
	checksum=CRC_update(checksum,p_Buffer[i]); 
	}
	System.out.println("Checksumme = "+checksum);
	return checksum;		
}
[/code]
 
W

wildbret

Gast
Sorry, aus Versehen den Beitrag abgesendet, bevor ich fertig war.
Wenn ich mich registriere kann ich dann meine Beiträge editieren?

Also das Problem ist der &-Operator im C-Quelltext den Java so nicht akzeptiert, weil IF Boolean zurückliefert, also true oder false.
Fehlermedlung: "Type mismatch: cannot convert from int to boolean"

Wie kann ich die Bits des Bytes crc einzeln vergleichen?
 
S

SlaterB

Gast
ja anmelden, dann editieren,

zum Vergleich brauchst du wohl eine Maske:
if (crc & 0x01 == 0xirgendwas)
oder generell
if (crc & 0x01 > 0) // dann ist wohl irgendein Bit gesetzt
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Robert Zenz Ich brauche bitte mal kurz einen Sanity/Reality-Check betreffend Tests. Allgemeine Java-Themen 9
N MsgPack - Null Check Allgemeine Java-Themen 5
Ananaskirsche Website mit Browser-Check aufrufen Allgemeine Java-Themen 8
perlenfischer1984 Wann ist ein Parameter Check sinnvoll Allgemeine Java-Themen 7
P business check Allgemeine Java-Themen 2
P Check, welche Java Version installiert bevor ein Programm ausgeführt wird. Allgemeine Java-Themen 12
1 Check read/write permission for file Allgemeine Java-Themen 4
S Kleiner Texteditor mit MD5-Check Allgemeine Java-Themen 4
L Java Performance Check Tool Allgemeine Java-Themen 3
S HILFE! UML-Moddelierung. Ich check es nit! Allgemeine Java-Themen 4
S versions-check Allgemeine Java-Themen 5
J Viewer Bot Umsetzung Allgemeine Java-Themen 10
W Best Practice Frage zur Umsetzung MVC Allgemeine Java-Themen 9
Anfänger2011 Umsetzung - Programmanleitung Allgemeine Java-Themen 7
F.S.WhiTeY Designfrage bzw. Meinung zur Umsetzung Allgemeine Java-Themen 39
J Gestaltung und Umsetzung von Druckausgaben Allgemeine Java-Themen 2
A Klassendiagramm und Umsetzung (Einkaufsliste) Allgemeine Java-Themen 6
B User-Input aus Zahlen und Operatoren - beste Umsetzung? Allgemeine Java-Themen 8
D MVC Umsetzung Allgemeine Java-Themen 10
T Frage zur Umsetzung in Java Allgemeine Java-Themen 4
D Umsetzung des Sinus in JAVA Allgemeine Java-Themen 4
G OOP Umsetzung gesucht Allgemeine Java-Themen 25

Ähnliche Java Themen

Neue Themen


Oben