Advertisement

Programmer Coding

2’s Complement in C Language

What is 2’s Complement?

The 2’s complement in C is formed by the 1’s complement in C. We know that the 1’s complement of a binary number is formed by changing 1 to 0 and 0 to 1; The 2’s complement of a binary number is formed by adding the 1’s complement of a binary number.

In short, we can say that the sum of the 2’s in C is defined as the sum of the 1’s and the 1’s in C.

Advertisement

In the above figure, the binary number is equal to 00000101 and its sum is calculated by changing 1 to 0 and 0 to 1. So an addition would be 11111010. We add another 1 to one to calculate the sum. two more and the result is 11111011.

Example

#include <stdio.h>

int main() {

int decimalNum, twosComp;

// Input decimal number

printf(“Enter a decimal number: “);

scanf(“%d”, &decimalNum);

// Calculate 2’s complement

twosComp = ~decimalNum + 1; // Bitwise NOT and add 1

// Display decimal number and its 2’s complement

printf(“Decimal: %d\n”, decimalNum);

printf(“2’s Complement: %d\n”, twosComp);

return 0;

Advertisement

}

Output

Enter a decimal number: 10

Decimal: 10

2’s Complement: -10

Advantages and Disadvantages

 

  • Advantages

 

  • Efficient Arithmetic Operations:

Addition, subtraction, and multiplication can be accomplished directly by adding 2 using the same electronics designed for unsigned numbers. This makes it easy to do the math from both a hardware and software perspective.

  • Single Representation for Zero:

Unlike sign and addition representations of two, which have separate representations for positive and negative zero, the sum of 2 has one representation for zero, making arithmetic easier.

  • Straightforward Overflow Handling:

Overflow conditions in 2’s complement arithmetic can be easily detected and handled by discarding the overflow, ensuring inconsistent handling of arithmetic operations.

  • Symmetric Range:

The range of numbers represented by 2’s complement is symmetrical with respect to zero; This means that the same number of components can represent the same number of positive and negative numbers.

Disadvantages

 

  • Complexity of Negation:

Negating a number in 2’s complement requires adding a bit (NOT) to the number and then adding This extra step adds complexity compared to other representations such as signed more and less.

  • One Extra Negative Value:

In addition to 2, a negative result is obtained instead of a positive result due to the asymmetric range around zero. This can cause problems when representing the least negative.

  • Difficulty in Mental Arithmetic:

Mental arithmetic using 2’s complement can be more difficult than other notations, especially when dealing with negative numbers and past events.

  • Limited Range:

Like all representation generals, 2’s complement has a finite number of digits determined by multiplication. Apart from this, this may cause crashes and crashes while working on the code.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top