我需要进行许多以下形式的二进制计算:
10.1^(1/11) base 2
10.001^(1/11) base 2
10.0001^(1/11) base 2
10.00001^(1/11) base 2
10.000001^(1/11) base 2
...
其中 1/11 底数 2 = 1/3 底数 10。
我不想使用bin2dec
和dec2bin
来表示二进制。我想像在 DEC 中那样进行计算,而不必担心繁琐的函数。那么我该如何在 Octave 中进行二进制计算呢?
答案1
长话短说,这是可能的,但你必须 a) 自己编程,或 b) 找人帮你编程。这种以 2 为底的小数写法在计算中根本不适用。
编写一个函数将这种小数二进制数表示形式转换为标准 IEEE754 双精度浮点二进制并非不可能,所以如果它是绝对必要的,那么它是可行的。
答案2
简短的回答是你不能。如果我正确理解了你的例子,并且 10.1 应该是一个二进制浮点数?那么 bin2dec 并不合适,除非你的数字都是字符串。我不知道八度音程中的“浮点二进制”概念。如果你想这样做,我认为你必须自己手动管理尾数和指数。
如果你已经确定了所有位运算,你有没有尝试过位操作函数?位集等等?