 <p>There are no negative <a href="http://en.wikipedia.org/wiki/ASCII" rel="nofollow">ASCII</a> values. ASCII includes definitions for 128 characters. Their indexes are all positive (or zero!).</p> <p>You're seeing this negative value because the character is from an <em>Extended ASCII</em> set and is too large to fit into the char literal. The value therefore overflows into the bit of your <code>char</code> (signed on your system, apparently) that defines negativeness. </p> <p>The workaround is to write the value directly:</p> <pre><code>unsigned char a = 0xAE; // « </code></pre> <p>I've written it in hexadecimal notation for convention and because I think it looks prettier than <code>174</code>. :)</p>