每个数据点由两个字节的 12 个比特位组成一个整型值: 取第一个字节的低 5 位比特位,取第二个字节的低 7 个比特位,按照顺序组成一个整型值 请问这个方法要怎么写?
这样写有问题么?
data="abcd"
bit_data=data.unpack(‘b*’)
bit_data=bit_data[0]
data_int=[]
len=bit_data.length/16
len.times do |i|
start=i*16
data_c=bit_data[start,16] # 获取两个字节的16位比特位
data_d=data_c[0,5]+data_c[8,7]
data_d_int=data_d.to_i 2 # 12位bit转换成整型
data_int.push(ecg_d_int)
end
正确写法:
(('a'.ord & 0b11111) << 7) | ('b'.ord & 0b1111111)