2014-09-13 99 views
3

我碰到一些代碼,今天讀「〜方法」是什麼意思?

public class SomeClass 
{ 
     int DEFAULT_INT = 5; 

     public static int SomeMethod() 
     { 
      return ~FooBar(DEFAULT_INT); 
     } 

     public static int SomeMethod(int i) 
     { 
      return ~FooBar(i); 
     } 

     public static int FooBar(i) 
     { 
      ...... 
     } 
} 

來到我以前沒有看到這一點,據我知道它的法定名稱〜FooBar的 有誰知道,如果「〜」做什麼特別的東西?

對不起,我調整了原帖的代碼。我想念讀FooBar方法。

+0

你確定它的靜態方法?因爲你可以實現析構函數。 http://msdn.microsoft.com/en-us/library/66x5fx1b(v=vs.110).aspx – Brian 2014-09-13 05:32:04

回答

8

是的,這是一個bitwise complement運營商。

+0

所以一個按位補碼操作正在返回int之前它被返回給調用者?是的,方法是靜態的 – Buckrogerz 2014-09-13 05:39:08

+0

@Buckrogerz我相信如此。 – Dmitry 2014-09-13 05:41:13

+4

你是說'〜'是在這種情況下使用的按位互補運算符'public static int〜FooBar(){...}'? – hatchet 2014-09-13 05:41:42

2

如上所述,它是一個按位運算符,可以反轉每一位。

FooBar方法返回一個int。在幕後它返回32位,看起來像這樣:

1110000001100 ..... // 32個字符。
對INT執行~將返回0001111110011 .....

又如:

~(101) = 010 
~(000) = 111 
+0

+1爲澄清,但「它返回32個字節」字節?真? – Dmitry 2014-09-13 19:49:03

+0

我的意思是位,很容易理解,即使我錯誤地寫了「字節」。 – 2014-09-14 04:32:53