Big Moose Saloon
 Search | Java FAQ | Recent Topics Register / Login

# unsigned 8 bit integers,, and checksums

Mike Southgate
Ranch Hand

Joined: Jul 18, 2003
Posts: 183
1) how would I represent unsigned 8 bit integers in Java? Can I do this using a type or should I use byte, write out the value in unsigned 8 bit binary, and then reverse out the 2's complement to get the value? As an example 16 decimal = 0001 0000 and that works fine as it's not a 2's complement negative. But 254 = 1111 1110, subtract 1 = 1111 1101, now filp the bits = 1000 0010. Now we need to represent this in 2's complement form, so add 1 = 1000 0011 and flip the bits = 1111 1100 = -125 ? Did I do this right?

2) I need to calculate a checksum that is defined as the 2's complement of the sum of a series of bytes. The checksum is 8 bits. Now, it's pretty clear that 8 bits won't handle a very large series of bytes before it overflows to 9 bits etc. Anyone have experience with exactly how this is done. Do you just ignore the bits above 8 or do they wrap around? If the high-order bit of the sum ends up being 1, that would indicate a negative number. Would you flip that bit too during the two's complement conversion?

Thanks in advance

ms

ms<br />SCJP, SCJD

It is sorta covered in the JavaRanch Style Guide.

subject: unsigned 8 bit integers,, and checksums
Similar Threads
>> , >>> operator
casting
two's complement
~operator
octal/hex/binary/unicode ?