Previous Thread
Next Thread
Print Thread
Rate Thread
Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
OP Offline
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
I am studying java, actually I am taking a CBT course through work. I am studying shift opperators and do not understand quite how I would use this in code. Now this sounds most handy for something like encryption, but how to I get access to the acctual stream of 1's and 0's in the data stream?

<< and >> and >>>

Please give an example of when I would use this.

Joined: Dec 2002
Posts: 3,255
Likes: 3
UGN Elite
OP Offline
UGN Elite
Joined: Dec 2002
Posts: 3,255
Likes: 3
Also The course is saying the << is use for when doing multiplication by 2 and >> is useful when doing division by 2. why not just int*2 and int/2

Joined: Jan 2004
Posts: 6
V
Junior Member
Offline
Junior Member
V
Joined: Jan 2004
Posts: 6
Let me give you an example of how this could be useful. I wrote this a while back for a goofy little programming language. The language is c but it still applies.
Code
#define CHAR_LENGTH 8


// char *CharToBinary(char a_chChar)
// Accepts:  A single character
// Returns:  The binary string equivalent of the the input character
// Purpose:  Converts the given char to its binary string format
char *char2binary(char a_chChar) {
	char 	 *p_chBuffer = (char *)malloc(CHAR_LENGTH); 	// This will hold our converted buffer
	int	 intCtr=0; 		// You can figure this one out
	
	// Now let's just loop through each bit
	for(intCtr=0; intCtr<CHAR_LENGTH; intCtr++) 
		// We are just going to use a binary & to determine the value of each bit
		p_chBuffer[7 - intCtr] = (((a_chChar & (1 << intCtr)) == ( 1 << intCtr)) ? 0x31 : 0x30);
	
	// Ok we're done
	return p_chBuffer;
}	
Hope that helps. Basically, realizes that each bit can be seperated by using powers of 2, ie. 00000010 = 2, 00000100 = 4 etc. I use that fact to create a quick little loop to break the byte down. Let me know if you need any explanation.

Joined: Mar 2002
Posts: 1,136
P
UGN Elite Poster
Offline
UGN Elite Poster
P
Joined: Mar 2002
Posts: 1,136
Alright, here's a quick example.

Code
public class test {
        public static void main(String args[]) {
                int i = 5 << 4;
                System.out.println(i);
        }
}
The << operator in this case is used to multiply 5 by 2^4, which is 16. Thus the output is 80.

5 * [2^4]

Likewise, the >> operator would be used to multiply the left value by 2^rvalue.

You very rarely use either of these. They're useful if you need to multiply or divide by a power of 2. Otherwise, you don't use them.

To be honest, I've never used the >>> operator, and don't know what it does off the top of my head.

Using bitshift operators on data streams is pointless, as well as bad practice. You should use the methods provided by the stream classes to access data.

In five years of doing Java coding, I don't believe I've ever used any of these operators. So I really don't know too much about them, except that basic example I gave above. Just goes to show how useful they really are *wink* since for some reason I can't use a parentheses


Link Copied to Clipboard
Member Spotlight
Posts: 30
Joined: June 2002
Forum Statistics
Forums41
Topics33,840
Posts68,858
Average Daily Posts1
Members2,176
Most Online3,253
Jan 13th, 2020
Latest Postings
Where and how do you torrent?
by danni75 - 03/01/24 05:58 AM
Animation,
by JohanKaariainen - 08/15/19 01:18 AM
Blackbeard.....
by Gremelin - 10/03/18 07:02 PM
my old account still exists!
by Crime - 08/10/18 02:47 PM
Okay WTF?
by HenryMiring - 09/27/17 01:45 AM
The History Thread...
by Gremelin - 08/11/17 12:11 PM
My friend NEEDS your HELP!
by Lena01 - 07/21/17 12:06 AM
I'm having fun with this guy.
by gabithompson730 - 07/20/17 01:50 AM
I want to upgrade my phone
by gabithompson730 - 07/20/17 01:49 AM
Doom 3
by Cyrez - 09/11/14 08:58 PM
Amazon Gift Card Generator/KeyGen?te
by Gecko666 - 08/22/14 09:21 AM
AIM scene 99-03
by lavos - 09/02/13 08:06 AM
Planetside 2
by Crime - 03/04/13 07:10 AM
Beta Testers Wanted
by Crime - 03/04/13 06:55 AM
Hello Everyone
by Gremelin - 02/12/12 06:01 PM
Tracfone ESN Generator
by Zanvin Green - 01/18/12 01:31 PM
Python 3 issue
by Testing - 12/17/11 09:28 PM
tracfone airtime
by Drache86 - 07/30/11 03:37 AM
Backdoors and the Infinite
by ZeroCoolStar - 07/10/11 03:52 AM
HackThisZIne #12 Releaseed!
by Pipat2 - 04/28/11 09:20 PM
gang wars? l33t-wars?
by Gremelin - 04/28/11 05:56 AM
Consolidate Forums
by diggin2deep - 04/21/11 10:02 AM
LAN Hacking Noob
by Gremelin - 03/12/11 12:42 AM
Top Posters
UGN Security 41,392
Gremelin 7,203
§intå× 3,255
SilentRage 1,273
Ice 1,146
pergesu 1,136
Infinite 1,041
jonconley 955
Girlie 908
unreal 860
Top Likes Received
Ghost 2
Crime 1
Ice 1
Dartur 1
Cyrez 1
Powered by UBB.threads™ PHP Forum Software 7.7.5