(********************************************************************) (* OCaml code from the book ``Learn Programming with OCaml'' *) (* See https://usr.lmf.cnrs.fr/lpo/ *) (* *) (* Sylvain Conchon and Jean-Christophe Filliâtre *) (* Copyright 2025 Université Paris-Saclay and CNRS *) (* *) (* Openly licensed via CC BY SA 4.0 *) (* See https://creativecommons.org/licenses/by-sa/4.0/deed.en *) (********************************************************************) (* Program 21 on page 175 Reading and Writing in a Bit Vector *) let get v n = let i = n / bpi and j = n mod bpi in (v.bits.(i) lsr j) land 1 <> 0 let set v n b = let i = n / bpi and j = n mod bpi in if b then v.bits.(i) <- v.bits.(i) lor (1 lsl j) else v.bits.(i) <- v.bits.(i) land lnot (1 lsl j)
This document was generated using caml2html