# Write a program that translates its passed integer (possibly negative) into binary code. Use the procedure

n=int(input())
def Bin(n):
if n>=2:
Bin(n//2)
print(n%2, end=“”)
else:

Bin(n)

idk how to integer negative into binary code, help pls

It’s most usual to represent negative numbers in binary as two’s-complement, but you haven’t said whether that’s the desired format. If it’s not, then just represent a negative binary number in the same way as a negative decimal number, namely, as a minus sign followed by the positive value.

Not too sure if this will help…

If you consider 8-bits (1-Byte), this can represent decimal values between 0 and 255. But, if the most significant bit is used as a ‘parity bit’ the decimal values are -128 to +127. Notice the the range does not change and the bits are still `00000000` to `11111111`. The only thing that changes is how we choose to interpret the bit pattern.

The math for four bits (most significant bit being used as a ‘parity bit’) is thus:

``````0 0 0 1:  1 =  2^0
0 0 1 0:  2 =  2^1
0 0 1 1:  3 = (2^1) + (2^0)
0 1 0 0:  4 =  2^2
0 1 0 1:  5 = (2^2) + (2^0)
0 1 1 0:  6 = (2^2) + (2^1)
0 1 1 1:  7 = (2^2) + (2^1) + (2^0)
1 0 0 0: -8 = -2^3
1 0 0 1: -7 = (-2^3) + (2^0)
1 0 1 0: -6 = (-2^3) + (2^1)
1 0 1 1: -5 = (-2^3) + (2^1) + (2^0)
1 1 0 0: -4 = (-2^3) + (2^2)
1 1 0 1: -3 = (-2^3) + (2^2) + (2^0)
1 1 1 0: -2 = (-2^3) + (2^2) + (2^1)
1 1 1 1: -1 = (-2^3) + (2^2) + (2^1) + (2^0)
``````

That can be extended to as many bits as you need to work with. I’ve used four bits only, for the sake of brevity.

1 Like

@rob42: The most significant bit would be the sign bit, not the parity bit. Parity is something different.

1 Like

Yes, thanks. I’m not too sure where I picked that terminology up from (maybe a tutor) in relation to BCD. I know it’s used (or was used) in data transmission protocols: I’m old enough to remember RS232 connections and the 'parity check` that was needed.