Source code for qiskit.aqua.utils.decimal_to_binary

# -*- coding: utf-8 -*-

# This code is part of Qiskit.
#
# (C) Copyright IBM 2018, 2019.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.

""" decimal to binary """
from numpy import binary_repr


[docs]def decimal_to_binary(decimal_val, max_num_digits=20, fractional_part_only=False): """ decimal to binary """ decimal_val_fractional_part = abs(decimal_val - int(decimal_val)) current_binary_position_val = 1 / 2 binary_fractional_part_digits = [] while decimal_val_fractional_part >= 0 and len(binary_fractional_part_digits) < max_num_digits: if decimal_val_fractional_part >= current_binary_position_val: binary_fractional_part_digits.append('1') decimal_val_fractional_part -= current_binary_position_val else: binary_fractional_part_digits.append('0') current_binary_position_val /= 2 binary_repr_fractional_part = ''.join(binary_fractional_part_digits) if fractional_part_only: return binary_repr_fractional_part else: return binary_repr(int(decimal_val)) + '.' + binary_repr_fractional_part