作者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