DEC, Intel, and SGI/MIPS

DEC is the default format for data created in a Digital Equipment Corporation environment, typically an RSX-11M or VAX operating system.

Intel is normally the default format for data created in an MSDOS or Microsoft Windows environment.

SGI/MIPS is the default format for data created in a Silicon Graphics Inc., or MIPS Technologies environment, typically RISC based 3D graphics workstations.

As a result of the implementation of the C3D file format in different computing hardware environments, C3D files can use three different endian representations, DEC, Intel, and SGI/MIPS, each of which stores integer and floating-point values in byte different  order – big endian, or little endian.  These describe the order in which bytes, representing numbers, are stored.  Both the DEC and Intel processors use the little endian method for integer storage where the lowest bytes are stored first while the SGI/MIPS processors use the big endian method. The C3D file endian structure information can be retrieved from the parameter header record at the start of the parameter section.

In addition, the floating-point format storage differs between all three processors.  The original floating-point format created by DEC was later modified by Intel and then standardized as the IEEE-754 format used by Intel and SGI/MIPS processors.

The IEEE-754 format uses a sign-magnitude representation where the difference between a positive value (e.g. +1) and its negative value (-1) is the MSB of the word, thus zero can have two values, one positive and one negative.  The DEC floating-point format has the same mantissa with a "hidden 1 bit", offset binary exponent to the left of the mantissa, but when the numbers are negative, the DEC format stores the value as the 2's complement of the positive value.  So there is no negative zero representation, the DEC format only supports one unsigned zero value.  All formats need to be supported for compatibility and data exchange.