summaryrefslogtreecommitdiff
path: root/src/sail_lib.ml
diff options
context:
space:
mode:
authorJon French2018-09-19 13:14:26 +0100
committerJon French2018-09-19 13:14:26 +0100
commitc2ed3d3782800779585e48cde3d46df75361e5eb (patch)
treeecfa9a5431b40f928aaa50240e7460731419696a /src/sail_lib.ml
parentfba2409be80a592f57ba3f718756d5aa221625f0 (diff)
separate decimal_string_of_bits from string_of_bits
Diffstat (limited to 'src/sail_lib.ml')
-rw-r--r--src/sail_lib.ml17
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