我如何计算需要多少位来表示任何负值
How do I calculate how many bits are needed to represent any negative value?
我想知道是否有一个计算允许我获得我需要存储任何负(有符号)值(如-1,-255,-1324等)的位数?
现在我已经实现了一个函数来计算大于等于0的值:
calculateBitsNeeded = function (value) {
if (value == 0) {
return 1;
}
else if (value > 0) {
return Math.floor(Math.log(value) / Math.LN2) + 1;
}
else {
//TODO ...
}
};
。:如果我有数字-38,我将需要7位来存储(101 1010)。
谢谢你的帮助
假设你谈论的是整数数字
要回答您的问题,您必须了解在所有现代平台上,整数要么被认为是有符号,要么被认为是无符号。
JavaScript实际上不支持整数,它们被存储为浮点值。然而,64位浮点数可以完全精确地处理53位整数,因此它可以很容易地处理C使用的16位整数。
我将忽略这些,并将我的答案限制为16位整型,您可以使用它们与c交谈
16位Unsigned位整数的取值可以为:0 - 65535
一个有符号整数可以有以下值:−32,768 to 32,767
在两种编码下,数字0 - 32,767
的存储方式相同。处理方式无差异。
然而,数字32,768 - 0
是使用一个称为two's恭维的系统存储的。
位明智,数字-1
和32,768
是相同的。-2
和32,767
是一样的
因此,计算一个负整数所需的位数最简单的方法是将其转换为有符号的等价物。
相关文章:
- React中的数据集表示
- 如何通过溢出来判断元素被切断了多少像素:隐藏在父级上
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- regex表示逗号,后跟空格或仅逗号
- 我将如何将其更改为循环和数组表示法
- 计算输入中有多少逗号分隔的字符串
- 如何使用Undercore和Backbone在HTML中表示模型属性
- 将JSON对象的表示形式更改为显式键/值格式
- 如何在JS中获得CryptoJS.HmacSHA256的摘要表示
- 在javascript中使用方括号表示法的嵌套对象
- jQuery从输入中获取值并检查它是否'It’是的.如果是这样,它应该公布有多少是正确的
- 如何在JavaScript中将数字表示为十六进制
- 如何从二进制int中获取百分比,每个位表示x%
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- 如何计算一个对象中五个属性中有多少是非null的
- JavaScript 使用多少位来表示一个数字
- 我如何计算需要多少位来表示任何负值