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
- use few structures with unlocked offset, as they are rerendered each time
the offset changes
- use small structures, the bigger the structure the slower the editing
- use structures with fixed bitsize like StaticFields,
StaticStructures, ValueFields
- iconify structures which you dont need at the moment (to disable
rendering)
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