954,479 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

bitwise shift opratore....

suppose i want to do shift left opeartion on

x=1010

y=x<<1

it will shift left the value

& make x=0100 but how can i store that

shifted value... in other variable...?

please help me to solve this query

nitu_thakkar
Light Poster
28 posts since Jan 2009
Reputation Points: 0
Solved Threads: 1
 

y=x<<1

it will shift left the value

& make x=0100 but how can i store that shifted value... in other variable...?

Uh... you say: y = x << 1 right? So what do you think 'y' is? Holy cow it's another variable! So you already stored in another variable. problem solved kthxbye! :icon_wink:

Nick Evan
Not a Llama
Moderator
10,112 posts since Oct 2006
Reputation Points: 4,142
Solved Threads: 403
 

suppose i want to do shift left operation on

x=1010

y=x<<1

it will shift left the value

& make x=0100 but how can i store that

shifted value... in other variable...?

please help me to solve this query


1. l x=10;
and left shifting the bits once does not give you0100
but 10100(ie.20)

2.If you want the output to be converted into a binary format
you can try out something like this:

A)If the input_number is greater than 0,
input_number%2 and store the remainder in an array('char'of sufficient size)

B)Divide the input_number by 2.Goto Step A

Place a delimitter such as a'\0' at the end.

The only disadvantage being the binary number so obtained is
reversed
Use a reverse counting loop to get the binary content.

zalezog
Light Poster
47 posts since Oct 2008
Reputation Points: 53
Solved Threads: 13
 

suppose i want to do shift left opeartion on

x=1010

y=x<<1

it will shift left the value

& make x=0100 but how can i store that

shifted value... in other variable...?

please help me to solve this query

Minimum data in most computers is a byte hence I think you mean
x=00001010 which is decimal 10 and when you say y=x<<1 the value of y is 00010100 which is decimal 20. x does not change its value when you say y=x<<1, so your original statement is doing precisely what you want.

iyercb
Newbie Poster
10 posts since Jan 2009
Reputation Points: 15
Solved Threads: 1
 

sorry for mistake but my actually question is,

i want to make one program binary no.s multiplication

(using register method)

i have to follow some rules,

no1=1010

no2=0101

Rules are:

store no1 in 8-bit register (like this way)

no1=10100000

then have to perform shift left opration on it. (shift only one bit)

so,
no1=01000000

if shifted no. is 1 then add no2 with no1

like

no1=01000000
+
no2=00000101 (have to store no2 like this way)

no1=01000101

then agin do shift left operation ...

if shifted value is 1 than add no2 if not then add 0

repeat this process four time

i wann make program for this purpose

so how can i get that shifted bit value (if it 1 or 0)

becaues basis on this opeation is perfomed

nitu_thakkar
Light Poster
28 posts since Jan 2009
Reputation Points: 0
Solved Threads: 1
 

there are many registers available in the compiler into which you can store directly your numbers.

ajay.krish123
Junior Poster in Training
90 posts since Nov 2008
Reputation Points: 6
Solved Threads: 9
 

@nitu: Do you know how to use any other bit-operators?

@ajay: I believe you mean, computer. Regs are for brief usage, not storage.

MosaicFuneral
Posting Virtuoso
1,691 posts since Nov 2008
Reputation Points: 888
Solved Threads: 116
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You