code: def __compute_int_bit_num(param_array):
      abs_array = np.abs(param_array)
      max_abs = abs_array.max()
      if max_abs >= 1:
          max_idx = abs_array.argmax()
          max_log2 = np.log2(max_abs)
          if max_log2.is_integer() and param_array[max_idx] > 0:
              int_bit_num = int(max_log2) + 2  # almost impossible
          else:
              int_bit_num = int(np.ceil(max_log2)) + 1
      else:
          int_bit_num = 1  # 1 is needed to represent sign
      return int_bit_num
  
file_path: nnabla/python/src/nnabla/utils/converter/nnablart/nnb.py
imports: import collections
  import math
  import struct
  import nnabla.utils.converter
  import numpy
  import yaml
  from .resolver import Resolver
  from .utils import create_nnabart_info
  from .utils import preprocess_for_exporter
  from .utils import revise_buffer_size
label_desc: Use image node_id 4 for calling the NnbExporter obj's underlying member method code with example usage: obj.__compute_int_bit_num(param_array) and returns: int_bit_num