簡體   English   中英

〜運算符的功能是什么?

[英]What is the function of the ~ operator?

不幸的是,搜索引擎使我無法使用此查詢。

例如:

int foo = ~bar;

在C和C ++中,它是一個按位NOT

我假設你基於最活躍的標簽,你指的是C#,但它也是C和C ++中的同一個NOT運算符。

來自MSDN

〜運算符對其操作數執行按位補碼運算,具有反轉每個位的效果。 為int,uint,long和ulong預定義了按位補碼運算符。

示例程序:

static void Main() 
{
    int[] values = { 0, 0x111, 0xfffff, 0x8888, 0x22000022};
    foreach (int v in values)
    {
        Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);
    }
}

輸出:

~0x00000000 = 0xffffffff
~0x00000111 = 0xfffffeee
~0x000fffff = 0xfff00000
~0x00008888 = 0xffff7777
~0x22000022 = 0xddffffdd

它被稱為Tilde (用於將來的搜索),通常是按位NOT的用戶(即每個位的補碼)

它被稱為代字號,看起來有些語言使用它作為一個按位NOT: http//en.wikipedia.org/wiki/Tilde#Computer_languages

通常它是Negation運算符。 什么是語言?

按位 ,產生操作數的按位補碼。

在許多編程語言(包括C系列中的編程語言)中,按位NOT運算符是“〜”(代字號)。 不得將此運算符與“邏輯非”運算符混淆,“!” (感嘆號),在C ++中將整個值視為單個布爾值 - 將true值更改為false,反之亦然,並且C的值為0到1,值為0到0之外的值。不是“不是一個按位操作。

在C中,它是按位補碼運算符 基本上,它查看數字的二進制表示,並將其轉換為零,將零轉換為1。

在大多數類C語言中,它不是一點點。 這將采用數字的原始二進制實現,並將所有1改為0,將0改為1。

例如:

ushort foo = 42;   // 0000 0000 0010 1010
ushort bar = ~foo; // 1111 1111 1101 0101
Console.WriteLine(bar); // 65493

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM