[問題] 0x1=0xf, 0x2=0xf0, 0x3=0xff,依此類推 ~~

看板C_and_CPP (C/C++)作者時間16年前 (2009/03/06 00:56), 編輯推噓5(508)
留言13則, 4人參與, 最新討論串1/1
請教各位前輩 0x1=0xf, 0x2=0xf0, 0x3=0xff,依此類推 ~~~ 不用if else if 因為這樣要define16次~~~~ 有無法好演算法~~~努力想中~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.39.107

03/06 01:03, , 1F
用shift如何?? << 加上用 & 做奇偶數運算應該可以....
03/06 01:03, 1F

03/06 01:05, , 2F
還要 | 去生數字; 不過老實說我看不懂要幹麻....Orz
03/06 01:05, 2F

03/06 01:07, , 3F
0x4=0xf00, 0x5=0xf0f 都是指int~~~~~~~
03/06 01:07, 3F

03/06 01:08, , 4F
我是不懂0x4=0xf00 這個到底是要幹痲....Orz
03/06 01:08, 4F

03/06 01:09, , 5F
從這個例子看, 左邊的數 = 右邊的數的2進位表示法....
03/06 01:09, 5F

03/06 01:09, , 6F
只是二進位裡的1, 在這邊全部是0xf, 並湊成真的整數....
03/06 01:09, 6F

03/06 01:14, , 7F
正在想用<< | 如何可以達到此功能~~
03/06 01:14, 7F

03/06 01:17, , 8F
請問你現在是要輸入左邊的值給出右邊的值嗎??
03/06 01:17, 8F

03/06 01:18, , 9F
沒錯~~~
03/06 01:18, 9F

03/06 01:18, , 10F
return (x&1)*0xf + bool(x&2)*0xf0 + bool(x&4)*0xf00
03/06 01:18, 10F

03/06 01:19, , 11F
+ bool(x&8)*0xf000;
03/06 01:19, 11F

03/06 01:32, , 12F
樓上解的真漂亮, 推一個<(_ _)>
03/06 01:32, 12F

03/06 10:10, , 13F
用switch不就結了 還自動最佳化哩 -_-
03/06 10:10, 13F
文章代碼(AID): #19i0Gkoq (C_and_CPP)
文章代碼(AID): #19i0Gkoq (C_and_CPP)