I
IOPortAcces Hex
Gast
Hi,
vielleicht kennst du die Klasse IOPortAccess? Wenn nicht ist auch nicht schlimm. Hier geht es eher um Typecasts.
IOPortAccess io= new IOPortAccess();
io.writePort(0x278,0x80);
So wird es gemacht. Wenn ich die 0x80 =[1000.0000] auf einen Port schreibe, muss ich es in einer Hexzahl (0xFE oder 0x80) angeben. Dabei wird das höchstwertige Bit auf 1 gesetzt.
Meine Frage: Wenn ich jetzt nicht "0x08" direkt reinschreiben will, sondern einen Umweg gehen muss wie:
wie schreibe ich die Dezimalzahl (2^7) als Hex-Zahl rein?
String j=Integer.toHexString((int) Math.pow(2, 7));
Integer i = new Integer(j);
io.writePort(0x278,i); ... eigentlich ist es ja jetzt ein Int-Wert und somit nicht richtig, oder?
Der Int-Wert wird bei System.out.println(i) mit 80 ausgegeben;
Das heißt ja, ich schreibe sozusagen:io.writePort(0x278, 80); und nicht 0x80 .... und das macht doch bestimmt nen Unterschied.
vielleicht kennst du die Klasse IOPortAccess? Wenn nicht ist auch nicht schlimm. Hier geht es eher um Typecasts.
IOPortAccess io= new IOPortAccess();
io.writePort(0x278,0x80);
So wird es gemacht. Wenn ich die 0x80 =[1000.0000] auf einen Port schreibe, muss ich es in einer Hexzahl (0xFE oder 0x80) angeben. Dabei wird das höchstwertige Bit auf 1 gesetzt.
Meine Frage: Wenn ich jetzt nicht "0x08" direkt reinschreiben will, sondern einen Umweg gehen muss wie:
wie schreibe ich die Dezimalzahl (2^7) als Hex-Zahl rein?
String j=Integer.toHexString((int) Math.pow(2, 7));
Integer i = new Integer(j);
io.writePort(0x278,i); ... eigentlich ist es ja jetzt ein Int-Wert und somit nicht richtig, oder?
Der Int-Wert wird bei System.out.println(i) mit 80 ausgegeben;
Das heißt ja, ich schreibe sozusagen:io.writePort(0x278, 80); und nicht 0x80 .... und das macht doch bestimmt nen Unterschied.