Re: Help w/ primitive type byte
Bryan wrote:
I was wondering if anyone would be willing to help me understand what
is going on with some code that I came across. It has to do with the
primitive type byte. What it's modeling basically is a register in a
device such as a remote terminal unit (RTU). The register holds a word
(byte[2]). Can someone explain what is going on with the code below?
private byte[] m_Register = new byte[2];
public final synchronized void setValue(int v) {
m_Register[0] = (byte) (0xff & (v >> 8));
m_Register[1] = (byte) (0xff & v);
}
public final int toInteger() {
return ((m_Register[0] & 0xff) << 8 | (m_Register[1] & 0xff));
}
Does the code not work as it should ?
Or are you looking for an explanation of the operators used ?
One more question... how would I go about storing a floating point
value in a similar register?
Float.floatToIntBits will convert a float to int and then you can
convert the int to 4 bytes using technique similar to above.
Arne