作者azureblaze (AzureBlaze)
看板Programming
标题Re: [闲聊] 不使用if的写法
时间Wed Jan 9 01:32:30 2013
unsigned int u = 0x6f6e + (~-!!(i-1)&0x72F60B);
printf("%s\n",(char*)&u);
限定little endian,big endian改一下就行就是了...
没有branch,没有pointer indirection
只是我不确定那串bitwise operation会不会比较快
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.66.246
1F:推 cutekid:推(Y),有趣短码(赞) 36.225.169.113 01/09 02:33
2F:推 neutrino:推, 我的话会这样写: 114.45.182.13 01/09 14:23
3F:→ neutrino:(!!(i-1))*0x6f6e + (!(i-1))*0x736579 114.45.182.13 01/09 14:23
4F:→ neutrino:以便稍微维持一点可读性 114.45.182.13 01/09 14:24
5F:→ azureblaze:我有一半的目的是破坏可读性XD 1.171.54.154 01/09 14:41
6F:→ azureblaze:所以我看那个乘号不爽XD 1.171.54.154 01/09 14:41
※ 编辑: azureblaze 来自: 1.171.54.154 (01/09 14:42)
7F:→ azureblaze:不知道DWORD*bool有没有更简单的写法 1.171.54.154 01/09 14:47
8F:推 neutrino:XD 114.45.182.13 01/09 15:50
9F:→ ykjiang:@.@ 61.59.83.131 01/10 22:30