Solved

Lower 8-bits of integer

Posted on 2003-11-24
9
355 Views
Last Modified: 2010-03-31
Given an integer of max length 16-bits how does one read the lower 8-bits, or is this not really a question.

I read that a java method converts the lower 8-bits of its integer param and converts it to the ASCII equiv.

Cheers/
0
Comment
Question by:robert_83
  • 7
  • 2
9 Comments
 
LVL 35

Expert Comment

by:TimYates
ID: 9810113
int lower = full & 0xFF ;
0
 
LVL 35

Expert Comment

by:TimYates
ID: 9810114
char ch = (char)( theInt & 0xFF ) ;
0
 
LVL 35

Expert Comment

by:TimYates
ID: 9810125
To get the 8 bits above that, you'd do:

char ch = (char)( ( theInt >> 8 ) & 0xFF ) ;
0
Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

 
LVL 35

Expert Comment

by:TimYates
ID: 9810127
these examples assume that "full" or "theInt" is you int variable :-)
0
 

Author Comment

by:robert_83
ID: 9810299
Could you briefly explain the theory of suppose i supply 8000, how to get the lower 8-bits.

This question originated from using DataInputStream readChar, then output the char. No matter what character it read from the text file it always outputted '?'

0
 
LVL 35

Expert Comment

by:TimYates
ID: 9810373
"&" does a bitwise AND on the integer value...

0xFF is 11111111 in binary, so say you have the number 345, in binary, that is:

101011001

so, if we AND it wil 0xFF:

101011001 (345) AND
011111111 (255 -- padded on the left with a zero)
-------------
001011001 (89)

Hope this explains it?

Let me know if you need more of an explanation...

Tim
0
 
LVL 35

Expert Comment

by:TimYates
ID: 9810383
Ahhh...using your example:

1111101000000 (8000) AND
0000011111111 (255 -- 0xFF)
------------------
0000001000000 (64)
0
 

Author Comment

by:robert_83
ID: 9811003
thanks for the reply, clear and concise.

I have a text file containing "r".

dis = DataInputStream(new FileInputStream(file));
char c = dis.readChar()
System.out.println(c);
output = ?

Why does it output ?.

Cheers/
0
 
LVL 35

Accepted Solution

by:
TimYates earned 50 total points
ID: 9811302
If it's a text file, use a Reader:

BufferedReader br = new BufferedReader( new FileReader( file ) ) ;
char c = (char)br.read() ;
System.out.println( c ) ;

should work...

if not, it is probably an encoding problem...
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question