Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I want to convert a binary fraction into decimal.Consider binary number 1101.1110. I know the manual method of conversion and i can put in the form of program, but i am not able to separate the fractional part from the number. I need to separate it because the method of conversion differs after the point.

while converting decimal to binary the fractional part can be separated this way:

double num=12.23;

int fraction=num-(long)num;

can u help me.

Thanks in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
266 views
Welcome To Ask or Share your Answers For Others

1 Answer

I'm assuming you want a result of type double. Parse your String without the point, then divide by the right power of two for the number of digits after the point.

int placesAfterPoint = binaryString.length() - binaryString.indexOf(".") - 1;
long numerator = Long.parseLong(binaryString.replace(".", ""), 2);
double value = ((double) numerator) / ( 1L << placesAfterPoint );

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...