【发布时间】:2015-05-01 04:31:34
【问题描述】:
问:正整数n的二进制表示的长度(位数)是多少?
我知道一个正整数可以通过使用底数 2 的和来表示为二进制,但我不确定如何找到任何正整数 n 的二进制表示的长度
【问题讨论】:
标签: binary
问:正整数n的二进制表示的长度(位数)是多少?
我知道一个正整数可以通过使用底数 2 的和来表示为二进制,但我不确定如何找到任何正整数 n 的二进制表示的长度
【问题讨论】:
标签: binary
您可以通过执行以下操作找到长度:
长度 = ceil(log(N + 1)/log(2));
即长度是 N 的以 2 为底的对数的上限。由于我不记得以 2 为底的对数函数名称,所以我在做上面的等效操作。 您需要 N + 1 才能正确说明 N 是 2 的直接幂,因此需要一个额外的位来表示它。示例 N = 8 = 1000(二进制)。 8 的底数 2 为 3,3 的上限为 3,但 9 的底数 2 为 3.16993,3.16993 的上限为 4。
【讨论】: