什麼是「清除第六位」整數的最佳方法?「清除第6位」的最佳方法是什麼?
而且,您的解決方案平臺是獨立的嗎? (32或64位整數等)。如果不是,你可以提供一個獨立於平臺的解決方案嗎?
更新:我們不知道當它被給定時該位是否被設置或取消設置......還有,任何語言都可以......我知道獨立於平臺的解決方案需要2個操作員。 ..也許有各種方法或更簡單的解決方案。
更新:更清楚:清除整數的第6個最低有效位。
什麼是「清除第六位」整數的最佳方法?「清除第6位」的最佳方法是什麼?
而且,您的解決方案平臺是獨立的嗎? (32或64位整數等)。如果不是,你可以提供一個獨立於平臺的解決方案嗎?
更新:我們不知道當它被給定時該位是否被設置或取消設置......還有,任何語言都可以......我知道獨立於平臺的解決方案需要2個操作員。 ..也許有各種方法或更簡單的解決方案。
更新:更清楚:清除整數的第6個最低有效位。
x&= ~(1 << 5)
如果你確定它已經設置,只需減去64
更新:加入測試
if((x % 128)/64 > 0)
x -= 64;
至於我可以看到,現在,這沒有任何的假設平臺或語言支持。
我認爲不能肯定它已經設置好了。 –
或32,如果您認爲低位是「第1」位而不是「0」位。;) –
Jian Lin提出了一個很好的觀點,你必須檢查第6位是否已經設置。你的第一個想法也是。 – jcolebrand
也許這在c?
value&~(1<<6)
語言? ..... –
實際上,任何語言......但如果C是一個很好的說明按位操作,或者其他語言,如果他們有非常優雅的解決方案? –
嗯......究竟是大端整數的第6位呢?和一個小端的?... –