title: List of platforms supported by the C standard
body: <p>Does anyone know of any platforms supported by the C standard, for which there is still active development work, but which are:</p>
  
  <ul>
  <li>not 2's complement or</li>
  <li>the integer width is not 32 bits or 64 bits or</li>
  <li>some integer types have padding bits or</li>
  <li>if you worked on a 2's complement machine, the bit pattern with sign
  bit 1 and all value bits zero is not a valid negative number or</li>
  <li>integer conversion from signed to unsigned (and vice versa) is not via verbatim
  copying of bit patterns or</li>
  <li>right shift of integer is not arithmetic shift or</li>
  <li>the number of value bits in an unsigned type is not the number of
  value bits in the corresponding signed type + 1 or</li>
  <li>conversion from a wider int type to a smaller type is not by
  truncation of the left most bits which would not fit</li>
  </ul>
  
  <p>EDIT: Alternatively, if there are platforms in the period 1995 to 1998 which influenced the C99 decision to include the above, but which were discontinued, I would be interested in them also.</p>
  
  <p>EDIT: The C rationale has this to say about padding bits:</p>
  
  <p><em>Padding bits are user-accessible in an unsigned integer type. For example, suppose a machine
  uses a pair of 16-bit shorts (each with its own sign bit) to make up a 32-bit int and the sign bit of the lower short is ignored when used in this 32-bit int. Then, as a 32-bit signed int, there is a padding bit (in the middle of the 32 bits) that is ignored in determining the value of the 32-bit signed int. But, if this 32-bit item is treated as a 32-bit unsigned int, then that padding bit is visible to the user’s program. The C committee was told that there is a machine that works this way, and that is one reason that padding bits were added to C99.</em></p>
  
  <p><em>Footnotes 44 and 45 mention that parity bits might be padding bits. The committee does not
  know of any machines with user-accessible parity bits within an integer. Therefore, the
  committee is not aware of any machines that treat parity bits as padding bits.</em></p>
  
  <p>So another question is, what is that machine which C99 mentioned?</p>
  
  <p>EDIT: It seems that C99 was considering removing support for 1's complement and signed magnitude: <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n868.htm">http://www.open-std.org/jtc1/sc22/wg14/www/docs/n868.htm</a> <a href="http://www.open-std.org/jtc1/sc22/wg14/www/docs/n873.htm">http://www.open-std.org/jtc1/sc22/wg14/www/docs/n873.htm</a> (search for 6.2.6.2)</p>