http://qs1969.pair.com?node_id=11108846


in reply to Re^7: Can I access and use UV types from perl?
in thread Can I access and use UV types from perl?

ohhhh whaaat, I absolutely had my answer on preview for this one and then I knocked my pc off luls...

in essence, I was looking at the integers -8 .. 7 were constructed from the 4 bits rather than how the operation of additon occured upon them.

However, the outcome is that integers as we see them are of two subsets.

The signed integers are composed of a full mask split into a significant bit mask and the complement, the integer being derived from the difference of the component mask to the highbit mask.

The unsigned integers are composed of a full mask split into two, a full mask and its complement (a no-mask), the integer being derived from the differnce of the full mask to the complement mask.

Then there are the unused integers, of the type displayed in the example above Re^6: Can I access and use UV types from perl?. That is where the masks are of a size such that the mask and its complement fills the size of the data providing the integer, and not being 1 or 0 on either side. For example, equal sizes.

An example of the masking to produce integers.

complement mask - sigbitmask + complement mask - sigbitmask 0111 - 1000 + 0111 - 1000 c) 1110 + 0101 0110 - 1000 + 0101 - 0000 (6) - (8) + (5) - (0) (-2) + (5) = 3

Example c number used, taken from Re^7: Can I access and use UV types from perl?, but this works with the others too.

So integers are what we think they are, the difference of pairs of natural numbers.

edit added link to reply containing number used in this example, courtesy haukex