Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
What is the value of number left shift by -1

What is the result of number when it is left shifted by -1 in C programming using the left shift operator?

e.g.:

23 << -1
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

From the C11 standard 6.5.7p3 (for former versions it is basically the same):

"If the value of the right operand is negative or is greater than or equal to the width of the promoted left operand, the behavior is undefined."

IOW: undefined behaviour. Prepare for nasal demons.

Briefly: Do not

Caution: While many programmers are aware of that and avoid negative shift counts, it is often ignored that also counts >= the bit-size of the value are also undefined. This makes something like ((unsigned int)1 << 32) - 1 actually undefined if unsigned int has 32 bits or less. For signed values things become more complicated due to the sign (thanks @chux for pointing me at that). This is a common pitfall. For some implementations, different results for constant expressions (compile-time evaluated) and run-time evaluation might occur.

over 4 years ago · Santiago Trujillo Report

0

As Olaf said in his answer, left shifting by a negative number is undefined.

In fact, gcc will give a warning if you attempt shift in either direction by a negative number.

over 4 years ago · Santiago Trujillo Report

0

Bitwise Left Shift Operator in C:

  1. Bit Pattern of the data can be shifted by specified number of Positions to Left
  2. When Data is Shifted Left , trailing zero’s are filled with zero.
  3. Left shift Operator is Binary Operator [Bi – two]
  4. Binary means , Operator that require two arguments!

Table

Syntax:

**[variable]<<[number of places]**

If Number of Places become negative, it will be undefined

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!