首页 > 解决方案 > Elixir:如何获取整数变量的 bit_size?

问题描述

我需要获取一个整数变量中使用的位大小。

像这样:

bit_number = 1
bit_number = bit_number <<< 2
bit_size(bit_number)   # must return 3 here

bit_size/1函数用于“字符串”,而不是整数,但在练习中,需要获取整数位的大小。

我正在做一本书的压缩练习(Daivid Kopec 的 Python 中的经典计算机科学问题),我正在尝试在 Elixir 中进行学习。

标签: binaryelixirbitwise-operatorselixir-iex

解决方案


这有效:

(iex) import Bitwise
(iex) Integer.digits(1 <<< 1, 2) |> length
2

但我确信有更好的解决方案。

(正如@Hauleth 提到的,这里的答案应该是 2,而不是 3)


推荐阅读