Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7083303
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 28, 20262026-05-28T07:09:41+00:00 2026-05-28T07:09:41+00:00

I still haven’t found a reason why the lowest signed negative number doesn’t have

  • 0

I still haven’t found a reason why the lowest signed negative number doesn’t have an equivalent signed positive number?
I mean in a 3 digit binary number for simplicity
100 is -4? but we can’t have a positive 4 in signed format because we can’t. It overflows.
So how do we know two’s complement 1000 is -4 1000 0000 is -128 and so on? We have no original positive number

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-28T07:09:42+00:00Added an answer on May 28, 2026 at 7:09 am

    One way to think about it is that signed, two’s complement format works by assigning each bit a power of two, then flipping the sign of the last power of two. Let’s look at -4, for example, which is represented as 100. This means that the value is

    -1 x 2^2 + 0 x 2^1 + 0 x 2^0
    

    If we want to get the positive version of this value, we’d have to negate it to get

     1 x 2^2 - 0 x 2^1 - 0 x 2^0
    

    Notice that this value is equal to

     1 x 2^2 + 0 x 2^1 + 0 x 2^0
    

    In other words, the normal binary representation of this value is 100. However, we’re in trouble here, because we’re using a signed two’s complement representation, which means that we have specifically reserved the 4’s bit as the sign bit. Consequently, when we try to interpret the bit pattern 100 as a signed, three-bit, two’s complement value, it comes back out identically to what we started with. The shortage of bits is what’s hurting here.

    More generally, given n bits, of which the first is the sign bit in a two’s complement representation, trying to compute -1000…00 will give back the same value, because the bit needed to store the large positive value has the special meaning assigned to it.

    So why do this at all? The reason for this is that if you have only n bits, you cannot store the values -2n – 1 through 2n – 1, because there are 2n + 1 different numbers here and only 2^n different bit patterns. Excluding the largest positive number thus makes it possible to hold all the different numbers in the bit pattern specified.

    But why drop the high value and not the low value? This is in order to preserve binary compatibility with unsigned integers. In an unsigned integer, the values 0 through 2n-1 – 1 are all encoded using the standard base-two representation. Consequently, for unsigned and signed integers to agree at all, the unsigned integers are designed so that they are bit-for-bit equivalent with the first 2n – 1 unsigned integers, which range from 0 to 2n – 1 – 1, inclusive. After this, the unsigned values need the most significant bit to encode numbers, but the signed values are using this as the sign bit.

    Hope this helps!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've searched and read and still haven't found a concrete answer. Brief: I have
I have read many Forums on this topic but I still haven't found an
I have read a lot about unit testing, but I still haven't found any
I am using Eclipse for quite some time and I still haven't found how
I've always wondered this, and still haven't found the answer. Whenever we use cout
I haven't yet implemented this, I'm still in the thinking stage, but I have
I still have a large number of floppies. On some of them there probably
Update: I still haven't found any easy and good enough solution for mailinglists. We
I've searched the net for a solution but still haven't found one yet. I'm
I have been scratching my head all morning behind this but still haven't been

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.