Can someone check my answer for this binary combo question?
1. [-2^(n-1)+1, 2^n-1] 2. [-2^(n-1)+1, 2^n-1]
@wio
@ganeshie8
Let \(n\) = 8 bits whats the largest positive number in 1's complement system ?
um, 2^8?
nope
wait no, 2^8 - 1
no no, 2^7 -1
Yes, \(\large 2^7-1\) is the largest number in 1's complement system using 8 bits : \[\large 2^7-1~~=~~0111 ~1111\]
wait, actually i'm kinda confused about that to begin with.
what exactly are you confused about ?
so, if i have 0000 0000, in one's compliment, cant i write 1111 1111?
thats the reason 1's complement system sucks, we have two different representations for 0 in this system : ``` 0000 0000 ``` and ``` 1111 1111 ``` both represent the same number 0 in this system
oh ok, so 1 is the smallest number i can write that can be converted to one's complement so that it bcomes the largest?
I don't get you, could you elaborate a bit
since i'm flipping the bits, the smallest number i write in binary would give me the greatest number in one's complement right?
you don't flip bits when the left most bit is 0
you flip only when the left most bit is 1
oh beacuse it's positive?
yes
so one's complement only works when we're dealing with signed magnitude numbers?
signed magnitude has nothing to do with 1's complement
well unsigned is always positive isn't it?
so it has to be a negative number for one's complement to have an effect right?
You maybe correct but I'm not getting you First notice that "one's complement of a number" and "ones complement system" are two different things
In "one's complement system", binary strings with 0 as left most bit are treated as positive binary strings with 1 as left most bit are treated as negative
for example, `010 0000` is a positive number because the left most bit is `0` `1000 0000` is a negative number because the left most bit is `1`
so how is it different frmo signed magnitude system?
isnn't signed magnitude the same thing? where 0 is positive and 1 is negative?
before answering that, let me ask you two simple questions : what are the values of `0100 0000` in 1's complement and signed magnitude ? what are the values of `1000 0000` in 1's complement and signed magnitude ?
for the first one: one complement = 0100 0000 signed magnitude = 64 second one: one complement = 1111 1111 signed magnitude = 0 ?
tell me all the values in decimal form
for the first one it'll be 64 both times. second: -64, 0
you're correct about first one being 64 in both systems second one is wrong, try again
wait positive 64 and 0.
what are the values of `1000 0000` in 1's complement and signed magnitude ? #1's complement system : since the left most bit is `1`, we need to take 1's complement of this for the value and put minus sign. 1's complement = 0111 1111 = 127 so the value is \(\large -127\) #signed magnitude system : since the left most bit is `1`, the value is simply \(\large -0\)
so what do you notice ? what exactly is the difference between '"ones complement system" and "signed magnitude system" ?
well just with respect to the left most bit, it's the same for positive numbers.
OOO! so if i have a binary number, and if it's positive, for one/two complement and signed magnitude, it'll be the same.
if there is a one in front of the binary, then i flip all the bits, calculate new decimal value, and add negative number.
and for two's compliment, i write teh number as positive first, flip all the bits, and add 1.
do i have this right?
Exactly!
coming back the original question, whats the smallest number in 1's complement system using 8 bits ?
-127?
Yes \[-127 = 1000~0000\] this is the smallest number in 1's complement system using 8 bits
using \(8\) bits, it seems we can express the numbers from \(-(2^{7}-1)\) to \(2^7-1\) ?
yes.
so for the biggest number would it be, 1111 1110?
left most bit = 1, so thats a negative number think a bit, how can a negative number be the biggest ?
no 1111 1110 is in one's complement. so in just binary, it'd be 0000 0001.
1111 1110 = -1
how do you say -1 is the biggest number ?
so if it doesn't matter when it's a positive number, would it be 0111 1111, which is 128?
sorry, 127.
thats right, 127 is the biggest number using 8 bits in 1's complement system
oh so it's just that simple? 1111 1111 , 0111 1111?
How would I do it for tw's complement? or should i post this as a new question?
wait, ``` oh so it's just that simple? 1111 1111 , 0111 1111? ``` what are you trying to say here
so in one's complement, to find the greatest and smallest number given n bits, it's always 2^(n-1) -1
wait positive and negative 2^(n-1) -1.
thats right, but what has that do with `1111 1111 ` ?
`1111 1111 ` = 0 right
oh sorry, i meant 1000 0000.
now that makes sense, yeah `1000 0000` is the least number and `0111 1111` is the max number in 1's complement system using 8 bits
oh ok, this makes a lot of sense now, thanks!!
good, sry to ask too many questions but do you happen to know why signed magnitude is not so good for representing numbers in a computer ?
no, i don't. why?
Join our real-time social learning platform and learn together with your friends!