You seem to be over-complicating things. In a computer, registers and memory words hold a collection of bits (e.g. 64 bits). How we interpret those bits is up to the programmer and/or the CPU's ALU. One common way is to treat the bit pattern as as an unsigned binary number. Another common way is to treat them as a two's complement signed value - where values with the high bit set are treated as negative numbers from the point of view of comparisons etc. Other possibilities in the past have included just using one bit as a sign bit, and using one's complement.
The big advantage of two's complement as a way of representing negative numbers is that they can be added and subtracted exactly the same way as unsigned numbers, the only differences being when the overflow flag on the ALU should be set.
But we now seem to be a long way off from anything that has to do with perl.
Are you posting in the right place? Check out Where do I post X? to know for sure.
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
Want more info? How to link or
or How to display code and escape characters
are good places to start.