@@ -100,11 +100,6 @@ def nbits(self, nbits):
100100 self .check_capacity (self .enc_value , nbits , self .value )
101101 self ._nbits = nbits
102102
103- @property
104- def enc_value_repr (self ):
105- """Bit representation of field value"""
106- return '0b{self.enc_value:0{self.nbits}b}'
107-
108103
109104class SignedDecimal (Field ):
110105 """Abstract field for Decimals"""
@@ -114,11 +109,9 @@ def __init__(self, nbits, name=None, value=None):
114109
115110 @classmethod
116111 def check_capacity (cls , enc_value , nbits , value ):
117- _check_value = value
118- if _check_value < 0 :
119- _check_value = abs (_check_value ) - 1
120- if (_check_value > (2 ** nbits ) / 2 - 1 ) or _check_value < 0 :
112+ if enc_value > 2 ** nbits - 1 :
121113 raise OverflowError (bit_overfl_exc_txt .format (value , nbits ))
114+ return True
122115
123116
124117class Bool (Field ):
@@ -181,10 +174,10 @@ def __init__(self, nbits, name=None, value=None):
181174 super ().__init__ (nbits , name , value )
182175
183176 def encode (self ):
184- self .check_capacity (None , self .nbits , self .value )
185177 enc_value = self .value
186178 if enc_value < 0 :
187179 enc_value += 2 ** self .nbits
180+ self .check_capacity (enc_value , self .nbits , self .value )
188181 self .enc_value = enc_value
189182
190183 def decode (self , value ):
@@ -222,10 +215,10 @@ def __init__(self, nbits, frac, name=None, value=None):
222215 super ().__init__ (nbits , name , value )
223216
224217 def encode (self ):
225- self .check_capacity (None , self .nbits , self .value )
226218 enc_value = int (round (self .value * (10 ** self .frac ), 0 ))
227219 if enc_value < 0 :
228220 enc_value += 2 ** self .nbits
221+ self .check_capacity (enc_value , self .nbits , self .value )
229222 self .enc_value = enc_value
230223
231224 def decode (self , value ):
0 commit comments