n的取值范围是1到8。如果n取1,结果是0x01,n取2,结果是0x03,n取3,结果是0x07,n取4,结果是0x0f……
我能想到的首先是用循环的方法做:
uint8_t result = 0;
for (i = 0; i < n; i ++) {
result |= (1 << i);
}
有没有不用循环的方法快速实现?
list[8]=[0x010x030x070x0f0x1f0x3f0x7f0xff]
uin8_t set (uint8_t n)
{
return list[n-1]
一共是9种可能,查表也行
list[]={0x00x10x30x70xf0x1f0x3f0x7f0xff}
Result=list[i]