![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
虽然你没有说要做什么,但我猜你在编程做音乐,你的数字代表的是各音阶的频率(频率是对机器来说的,而不是音阶的真实频率)。
0x打头的数字,是16进制。
0x14 换算成10进制,是 20
0x34 换算成10进制,是 52
0x54 换算成10进制,是 84
彼此相差32,
以此类推……
但是,根据你的举例,0x74是音阶4(发),
那么音阶5(骚)应该是0x94才对,你的列表(0x98)明显不是,跟规律值差了4.
0xb1跟0x98差了25,不是前几个音阶的差值(32)。
这就有点奇怪了。
为什么前几个音阶差的值是等值的插,到了5和6的差值就不正常了?
我猜想这个可能是为了音阶补偿,到了高音部就不能等差值了,这样人耳听起来才更自然。
但是这样的话就不能确定7是多少了,建议你在0xca左右取值。(在16进制里,c代表12,a代表10,0xca换算成十进制是202)
下图是电子琴中各音阶的实际频率,请看中音部分,我画红框的部分。
我对音乐之类的不太熟,你感兴趣可以自己算一算实际频率和你所列的16进制频率之间的关系。
我粗看了一下,两者关系不是线性的,不太好算。
建议你把程序写出来,用耳朵听,找一个最适合的数字。(其实0xca差不多,一般人听不出来就行了)