如何使用位運算符從123
中刪除例如2
並返回13
?我不知道如何做到這一點..這可能嗎?提前致謝。如何使用按位運算符從另一個數字中刪除一個數字?
回答
你提出的建議是可能的,但是沒有什麼意義。下面是以位爲單位的值表示(僅顯示相關位,所有剩下的部分都是零):
2:000010 || 123:1111011 || 13:001101
有沒有合乎邏輯的方法來將123更改爲13位操作。最好將它轉換成一個字符串或字符數組,然後移除它們,然後將它轉換回int。
當然有。如果我們不限於*只是*「使用常量2和123」:-) – 2012-06-08 04:38:25
謝謝。我將它轉換爲字符串並返回到int。我只是在尋找一個可能的微觀優化.. :) – Jack
@pst你的意思是'如果我們'?在運行時生成一個掩碼比使用字符串/字符數組更難。我無法想象你會怎麼做這個工作... – evanmcdonnal
還有哪些其他情況?如果存在某種模式,則可以將其泛化爲整數級別,否則您只是在查看字符串替換。
在123
的2
實際上是2E1 (10100)
,並且在所述1234
2
將2E2 (11001000)
兩者都沒有涉及到2 (10)
,至少在逐位形式。另外,在除去數的右側的「數量」將需要被添加到數字的數目去除的左側/ 10
即,去從123到13:
Located "2".
Number on left (x): 100
Number on right (y): 3
y + (x/10) = 13
,並從1324到134
Located "2"
Number on left (x): 1300
Number on right (y): 4
y + (x/10) = 134
除非有一些模式(即你知道什麼樣的立場的數字是),你只需要.ToString()
數,然後做一個.Replace("2", "")
,在做之前結果爲int.Parse()
。
你很可能定義某種遞歸函數做這種純粹以整數形式,但它會是一個很多工作,爲的ToString()和int.Parse()
編輯的小的開銷:因爲我很無聊,我寫了一個遞歸的「整數」版本。
static int remove_digit(int number, int digit)
{
int sum = 0;
if (number > 0) //can't remove 0, doesn't matter if the "digit" is 0 also.
{
int factor = 1;
int temp = number;
while (temp > 0 && temp % 10 != digit)
{
sum += (temp % 10) * factor;
factor *= 10;
temp /= 10;
}
sum += remove_digit(temp/10, digit) * factor;//recursion to remove any further digits.
}
return sum;
}
沒有花太多時間優化代碼,所以可能有一些冗餘。隨意修改它。
Console.WriteLine(remove_digit(125254443, 2));
結果: 1554443
編輯:修改了代碼,現在稍快。
做了一些測試,甚至缺乏優化,這超出了執行'int.Parse(1000000001.ToString()。Replace(「0」,「」) ))',雖然哈哈不是很多 –
由於我們正在處理基數爲10的數字,所以在基數2中的操作是很難說的。使用一些數學,除去從k中的第n個位,並移動經是
(k/pow(10,n))*pow(10, n-1) + k%pow(10, n-1)
在基體2,<<
和>>
操作者的行爲像由pow(2, n)
相乘,並&
用掩模確實的%
的工作,但在基數10中,位不排列。
這是非常尷尬的,但如果你真的必須只有按位操作,我建議你convert the number to BCD。一旦進入BCD,你基本上有一個十六進制數字,數字在0到9之間,所以刪除一個數字非常簡單。完成後,轉換回二進制。
我不相信有人會想這樣做。
- 1. 從一個或兩個數字中刪除一個字符串
- 2. 如何使用按位運算符'添加'兩個數字?
- 3. 使用按位運算符交換整數中的第一個數字和最後一個數字
- 4. 使用PHP從字符串中刪除最後一個數字?
- 5. Python:從第一個數字字符中刪除字符串
- 6. 刪除從一個字符開始到另一個字符的子字符串
- 7. 如何從一個字符數組中刪除前4個字符
- 8. 從javascript中的另一個字符串中刪除一個字符串
- 9. 如何從一個字符串中一次刪除一個字符?
- 10. Python - 返回一個字符串的函數,從另一個字符串中刪除字符
- 11. 從一個字符串中刪除一個子字符串
- 12. 如何從數組中刪除最後一個字符?
- 13. 如何使用sed從第一行刪除第一個字符
- 14. 如何從另一個數組中包含的數組中刪除數字?
- 15. 如何從字符串[python]中刪除一個字符?
- 16. 如何從字符串中刪除一個字符?
- 17. 如何將一個數字刪除到一個java數組中?
- 18. 在C中,如何從另一個數組中刪除一個數組中存在的所有字符?
- 19. 數組函數從數組中刪除第一個字符
- 20. 從一個字符串中刪除一個子字符串,使用memmove在C
- 21. 如何從另一個函數調用一個數字到一個函數中?
- 22. Excel公式從字符串中刪除字符,然後用刪除相同字符替換另一個字符
- 23. 如何使用PHP從字符串中刪除前n個數字字符?
- 24. 如何從字符串中刪除第一個和最後一個字符
- 25. python regexp從字符串中刪除最後一個數字
- 26. 從另一個字符串中刪除字符串中的字符的功能
- 27. 如何將字符數組分配給另一個字符數組中的另一個字符數組C
- 28. 如何使用C中的baskspace從字符串中刪除一個字符?
- 29. swift:比較2個字符數組,從每個字符中刪除一個值
- 30. 如何從某個位置的字符串中刪除字符?
你打算獲得'13','103'還是'121'? – haylem
@haylem:'13'。更新的問題。 – Jack
正在做作業嗎?或者你爲什麼需要這樣做? –