问题描述
我需要2个简单函数才能将2个小(8位)数字编码/解码为1个(16位)。
我是这样写的:
function encode(i,j) {
const int16 = new Int16Array(1)
const int8 = new Int8Array(int16.buffer)
int8[0] = i
int8[1] = j
return int16[0]
}
function decode(x) {
const int16 = new Int16Array(1)
int16[0] = x
const int8 = new Int8Array(int16.buffer)
return [int8[0],int8[1]]
}
但是我认为可以轻松得多,有什么建议吗?
解决方法
是的。使用按位运算符可以轻松完成此操作。您的代码使用系统的endianness,但是此代码始终使用little-endian。
{EventsList.forEach((monthObj) => {
const monthObjKeys = Object.keys(monthObj);
monthObjKeys.map((monthKey) => {
const monthArr = monthObj[monthKey];
return (
<div className='Events__ItemList'>
<h1 className='Events__Month'>{monthObjKeys}</h1>
<div className='Events__Item'>
<p className='Events__Date'>{monthArr.Date}</p>
<p className='Events__Name'>{monthArr.Name}</p>
</div>
</div>
);
});
})}