File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Question on byte Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Question on byte" Watch "Question on byte" New topic
Author

Question on byte

Chitra AP
Ranch Hand

Joined: May 25, 2005
Posts: 42
for (byte bv = 0; bv < (byte)255; bv++) {
System.out.println(bv);
}

When I execute this block of within the main(), it is not printing anything. Please let me know the reason for it.

I thought it will narrow the value and print from 1 to 127.

Thanks
Tony Morris
Ranch Hand

Joined: Sep 24, 2003
Posts: 1608
The loop never enters because the condition 0 < (byte)255 is not met.
Try this:
System.out.println((byte)255);
and you will see that it is always less than zero (the initial value).

Here's something related:
http://qa.jtiger.org/GetQAndA.action?qids=74


Tony Morris
Java Q&A (FAQ, Trivia)
Steven Bell
Ranch Hand

Joined: Dec 29, 2004
Posts: 1071
255 is outside the range of byte. The int representation of 255 is:

11111111

When cast to a byte you end up with -1 so your loop is
amit taneja
Ranch Hand

Joined: Mar 14, 2003
Posts: 806
just wanted to know

how can we know that 11111111 is equlant to -1 ..how do u calculate..?

and will bv<125 give error ? i think now because..it retuns boolen value...
and comparsion b/w byte and int is ablsolutely fine ...i m right ?


Thanks and Regards, Amit Taneja
Philip Heller
author
Ranch Hand

Joined: Oct 24, 2000
Posts: 119
Amit wrote:

"how can we know that 11111111 is equlant to -1 ..how do u calculate..?"

For bytes, shorts, ints, and longs, negative numbers are represented using 2's-complement notation. To take the negative of a number, invert all the bits and then add 1. (Don't worry if there's overflow.) So to take the negative of 1, start with

00000001

Then invert all bits:

11111110

And add 1:

11111111

Note that if you invert all these bits and add 1, you've taken the negative of -1, and you're back at +1. There's an animated illustration that lets you play with this mechanism in Chapter 2 of "Ground-Up Java".

And you're right that bv<125 is ok.


Consultant to SCJP team.<br />Co-designer of SCJD exam.<br />Co-author of "Complete Java 2 Certification Study Guide".<br />Author of "Ground-Up Java".
amit taneja
Ranch Hand

Joined: Mar 14, 2003
Posts: 806
so u have written the book java groundup..
and thats y naming it...
any way...
thanx and goodluck for ur book

is there is some pdf version available or any part of it u give for publicity ...so we can atleast get some info about book and to review the book
regards,
[ June 05, 2005: Message edited by: amit taneja ]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Question on byte
 
Similar Threads
jlabel cover jtable ?
flushing image bytes to client browser
what is Broadvision?
Need to exit from telnet after connecting via shell script
regex return a paragraph