next - previous - toc

4. Frequently Asked Questions

1.Technical Terms

1.1 Big Endian / Little Endian

There are two different models for storing a multiple byte number.  A processor using the big endian model (e.g Motorola 68k, PowerPC) stores the most significant byte first. In the little endian model (e.g. x86) the least significant byte is stored first in memory.
Example: Suppose you have the hex number 0x12345678. On a big endian processor the number looks like this in memory: 0x12 0x34 0x56 0x78, whereas a little endian processor stores the number like this 0x78 0x56 0x34 0x12.

1.2 Encoding negative numbers / two-complement

The standard way to encode negative numbers is to use the two complement. A positive number has the most significant bit set to false, the other bits are used to encode the number. A negative number has the most significant bit set to true, the other bits are used the encode the two complement of the number. You calculate the two complement of a number by doing a not on the number and adding one. By doing this on the whole number, including sign, you negate the number.
Example: Suppose we encode the range -128 to +127 in one byte. +15 is encoded 00001111 but -15 is encoded 11110001 and not 10001111. Now we negate -15 to get +15. First the not operation: 11110001 -> not -> 00001110 and then adding one: 00001110 -> +1 -> 00001111.
The reason for this slighly complicated encoding of negative numbers is to make addition and subtraction easier. Instead of having to evaluate the sign bit and decide how to combine the two numbers, you can just do a binary addition. Subtraction is done by negating the second number before addition.

2. Performance

2.1. General Tips

Out of Memory

For editing large files you have to modify the maximal heap memory for the Virtual Machine. To set the maximal heap to 300MB in the standard JRE 1.4.0 from Sun the commandLine option is: java -Xmx300m -jar DataWorkshop.

3. How do I .. ?

4. Known Bugs

5. Errors

Could not transform Data


next - previous - toc