Какова функция ~ оператора?

возможно, некоторая комбинация этих настроек должна быть в Вашем файле VIMRC.

syntax on 
set syn=auto 
set showmatch 
filetype on 
filetype plugin on 
filetype indent on 
set tabstop=4 
set softtabstop=4 
set shiftwidth=4 
set expandtab
6
задан Jon Seigel 7 April 2010 в 01:53
поделиться

8 ответов

Причина, по которой нет возможности определить конструктор по умолчанию, проиллюстрирована следующим выражением:

new MyStruct[1000];

У вас есть 3 варианта здесь

  1. вызов конструктора по умолчанию 1000 раз, или
  2. создание поврежденных данных (обратите внимание, что структура может содержать ссылки; если вы не инициализируете или не очистите ссылку, вы потенциально можете получить доступ к произвольной памяти), или
  3. очистите выделенную память нулями (в байте level).

.NET делает то же самое как для структур, так и для классов: поля и элементы массива закрываются нулями. Это также обеспечивает более согласованное поведение между структурами и классами и отсутствие небезопасного кода. Это также позволяет платформе .NET не специализироваться на чем-то вроде new byte [1000] .

И это конструктор по умолчанию для структур. операция дополнения к своему операнду, что имеет эффект реверсирования каждого немного. Операторы побитового дополнения: предопределено для 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
11
ответ дан 8 December 2019 в 03:27
поделиться

В C и C ++ это побитовое НЕ .

12
ответ дан 8 December 2019 в 03:27
поделиться

Он называется Тильда (для ваших будущих поисков) и обычно используется для побитового НЕ (т.е. дополнение каждого бита)

3
ответ дан 8 December 2019 в 03:27
поделиться

Это называется тильдой, и похоже, что некоторые языки используют ее как побитовое НЕ: http://en.wikipedia.org/wiki/Tilde#Computer_languages ​​

1
ответ дан 8 December 2019 в 03:27
поделиться

Обычно это оператор отрицания . Какой язык?

1
ответ дан 8 December 2019 в 03:27
поделиться

побитовое отрицание , дает побитовое дополнение операнда.

Во многих языках программирования (в том числе из семейства C), побитовый оператор НЕ - "~" (тильда). Этот оператор не следует путать с оператором "логическое не", "!" (восклицательный знак), который в C ++ рассматривает все значение как единое целое Boolean - изменение истинного значения на false, и наоборот, и что C делает значение от 0 до 1 и значение кроме от 0 до 0. «Логическое не» не является побитовой операцией.

1
ответ дан 8 December 2019 в 03:27
поделиться

В C это оператор поразрядного дополнения . По сути, он смотрит на двоичное представление числа и преобразует единицы в нули, а нули в единицы.

0
ответ дан 8 December 2019 в 03:27
поделиться

В большинстве C-подобных языков побитовое нет. Это займет необработанную двоичную реализацию числа и заменит все 1 на 0 и 0 на 1.

Например:

ushort foo = 42;   // 0000 0000 0010 1010
ushort bar = ~foo; // 1111 1111 1101 0101
Console.WriteLine(bar); // 65493
0
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: