aspose file tools*
The moose likes Mock Exam Errata and the fly likes SJCP Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Soft Skills this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Certification » Mock Exam Errata
Bookmark "SJCP" Watch "SJCP" New topic
Author

SJCP

anilkuj
Greenhorn

Joined: Sep 18, 2000
Posts: 22
d1=-1.0;
d2=0;
byte b=0;
b=(byte)d1/d2;
System.out.println(b);

the above code prints 0 why? i would like to have a breif description......
Ramesh Donnipadu
Ranch Hand

Joined: Sep 16, 2000
Posts: 100
The result of d1/d2 will be double since d1 is already double. Since d2 is 0, you get -INF (a manifest constant NEGATIVE_INFINITY). The manifest constants are defined in java.lang.math package.
NEGATIVE_INFINITY is represented as (0xfff0000000000000)
When this bit pattern is converted into byte, all higher order bits are ignored and you get zero as result.
For your information, POSITIVE_INFINITY is represented as 0x7ff0000000000000 and NaN is represented as 0x7ff8000000000000
anilkuj
Greenhorn

Joined: Sep 18, 2000
Posts: 22
thank u ramesh that was very much clear but still i am confused about the no. of bits in the rep. could u explain over it. I am giving my scjp this 29th could u give me any useful url's although i have a good collection of them are there any url's which are not found in common but very useful
thanx
anilkuj
Greenhorn

Joined: Sep 18, 2000
Posts: 22
hi! ramesh
class test4
{
public static void main(String args[])
{
double d1=1;
double d2=0.0;
d1=d1/d2;
System.out.println("d1:"+(int)d1);
byte b=0;
b=(byte)d1;
System.out.println(b);
}
}

then according to you even this should give 0 but it isn't it's giving -1 why???
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: SJCP