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 6973539
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T17:07:16+00:00 2026-05-27T17:07:16+00:00

so I am shifting up a char into a long, then clearing, and doing

  • 0

so I am shifting up a char into a long, then clearing, and doing it again. A shift of 15 makes my machine go wacky, see comment in code. What do you think is causing this.

This machine char 0x00, and long 0x0000 0000

    unsigned char temp;
    unsigned long open_code;

    temp = 0x01;
    open_code = open_code | (temp <<1);// open_code = 0x0000 0002 
    open_code = 0;
    //......    
    // 2 - 7    
    //....  
    temp = 0x01;
    open_code = open_code | (temp <<8); // open_code = 0x0000 0100 
    open_code = 0;  
    temp = 0x01;
    open_code = open_code | (temp <<9); // open_code = 0x0000 0200 
    open_code = 0;  
    temp = 0x01;
    open_code = open_code | (temp <<10); // open_code = 0x0000 0400 
    open_code = 0;  
    temp = 0x01;
    open_code = open_code | (temp <<11); // open_code = 0x0000 0800 
    open_code = 0;
    temp =  0x01;
    open_code = open_code | (temp <<12); // open_code = 0x0000 1000
    open_code = 0;  
    temp =  0x01;
    open_code = open_code | (temp <<13); // open_code = 0x0000 2000
    open_code = 0;  
    temp =  0x01;
    open_code = open_code | (temp <<14); // open_code = 0x0000 4000  
    open_code = 0;
    temp =  0x01;
    open_code = open_code | (temp <<15); // open_code = 0xFFFF 8000  !!!!!
    open_code = 0;
    temp =  0x01;
    open_code = open_code | (temp <<16); // open_code = 0x0000 0000  !!!!!
  • 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-27T17:07:16+00:00Added an answer on May 27, 2026 at 5:07 pm

    It looks like you’re shifting an unsigned char too far and as a result inducing overflow. Try casting it to a long before shifting, like so:

    open_code = open_code | (((long)temp) <<15);
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to use shift-tab for auto completion and shifting code blocks visually. I
I'm shifting code from an application built in a non-standard custom PHP framework into
I have a problem with bit shifting and unsigned longs. Here's my test code:
Can anyone explain why the following code outputs what it does: char c =
I will be shifting my code base to the new 2.0 framework and just
I am shifting from DrScheme to Emacs to edit my PLT Scheme files. Can
I am new to shifting bits, but I am trying to debug the following
Does endianness matter at all with the bitwise operations? Either logical or shifting? I'm
I wrote the following function to split the given full path into directory, filename
I know it is possible to assign an unsigned char to an unsigned short,

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.