diff options
| author | Jon French | 2018-09-19 13:14:26 +0100 |
|---|---|---|
| committer | Jon French | 2018-09-19 13:14:26 +0100 |
| commit | c2ed3d3782800779585e48cde3d46df75361e5eb (patch) | |
| tree | ecfa9a5431b40f928aaa50240e7460731419696a /src/sail_lib.ml | |
| parent | fba2409be80a592f57ba3f718756d5aa221625f0 (diff) | |
separate decimal_string_of_bits from string_of_bits
Diffstat (limited to 'src/sail_lib.ml')
| -rw-r--r-- | src/sail_lib.ml | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/sail_lib.ml b/src/sail_lib.ml index 03559fba..fbe700aa 100644 --- a/src/sail_lib.ml +++ b/src/sail_lib.ml @@ -384,15 +384,16 @@ let string_of_hex = function let string_of_bits bits = if List.length bits mod 4 == 0 then "0x" ^ String.concat "" (List.map string_of_hex (break 4 bits)) - else - let place_values = - List.mapi - (fun i b -> (Big_int.mul (bigint_of_bit b) (Big_int.pow_int_positive 2 i))) - (List.rev bits) - in - let sum = List.fold_left Big_int.add Big_int.zero place_values in - Big_int.to_string sum + else "0b" ^ String.concat "" (List.map string_of_bit bits) +let decimal_string_of_bits bits = + let place_values = + List.mapi + (fun i b -> (Big_int.mul (bigint_of_bit b) (Big_int.pow_int_positive 2 i))) + (List.rev bits) + in + let sum = List.fold_left Big_int.add Big_int.zero place_values in + Big_int.to_string sum let hex_slice (str, n, m) = let bits = List.concat (List.map hex_char (list_of_string (String.sub str 2 (String.length str - 2)))) in |
