Print a decimal number in binary form. eg: number=10 or 2.22 or 0.876 ....
Required to print only four number after decimal point.
Solution:
Subsequently divide the integer part by two, and then multiply the fractional part by two.
def dec2bin(number): ## integer part: int_number = int(number) int_bin_str = '' while int_number != 0: (int_number, remainder) = divmod(int_number, 2) int_bin_str = str(remainder) + int_bin_str ## fractional part frac_number = number - int(number) frac_bin_str = '' count = 0 while( count < 4): frac_bin_str += str(int(2.0 * frac_number)) frac_number = 2*frac_number - int(2*frac_number) count += 1 return int_bin_str+"."+frac_bin_str ## MAIN ## print dec2bin(10) print dec2bin(2.22) print dec2bin(0.876)
Complexity:
time - O(n)Links and credits:
space - O(1)
http://www.careercup.com/question?id=19883663
No comments:
Post a Comment