7位中給定的數字只要是以下數字中的一個,就存儲數字的內容:1,2,3,4,5,6,7,8,9,107位中的C++存儲編號
首先,這可能嗎?
我不在第1位在這種情況下,尋找代碼,但對設計的建議,例如商店1在這種情況下,0等
編輯:這是在壓縮算法中使用。如果以上情況不可能,請嘗試按照我們手上的數字來計算prev數字,並且prev編號爲1,2,3,... 10
7位中給定的數字只要是以下數字中的一個,就存儲數字的內容:1,2,3,4,5,6,7,8,9,107位中的C++存儲編號
首先,這可能嗎?
我不在第1位在這種情況下,尋找代碼,但對設計的建議,例如商店1在這種情況下,0等
編輯:這是在壓縮算法中使用。如果以上情況不可能,請嘗試按照我們手上的數字來計算prev數字,並且prev編號爲1,2,3,... 10
您只需要4位來存儲編號1至10:
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = 10
+1希望你已經提到3位的範圍是8,而4位是16. –
一個附錄,你可能想看看'bitfields',一種不可移植但常用的方法來執行位打包的值。 [一個很好的討論在這裏](http://stackoverflow.com/questions/1044654/bitfield-manipulation-in-c) –
@ElliottFrisch那麼,你不得不提及0..7和1之間的區別.. 8,以及「爲什麼你不能只是減去端點」,現在我們正在談論fencepost錯誤,對於第一次看到這個概念的人來說可能有點多。也許正是因爲3位顯然太少,而4位已經夠清楚了,所以人們不必擔心確切的界限。 (但是我不知道爲什麼這個問題問了大約7位!) –
0 : 0000000
1 : 0000001
2 : 0000010
3 : 0000011
4 : 0000100
5 : 0000101
6 : 0000110
7 : 0000111
8 : 0001000
9 : 0001001
10: 0001010
除非我誤解了你的問題,那應該有效。
你可以使用'enum'嗎? –
是的,我可以使用。 – Luka
我會在[枚舉]中存儲[枚舉值](http://stackoverflow.com/questions/4564322/some-good-example-for-using-enums)。 –