У меня есть побитовые операции в VBA, и теперь я хочу преобразовать это в C #.
Я пытался выполнить преобразование с использованием побитовых операторов C #, но я не получил результат.
битовые операции VBA
Bit1 = (Var1 And 2 ^ 14) Or (Var1 And 2 ^ 15)
C # Битовые операции
var Bit1 = (bitvalue >> 14) | (bitvalue >> 15);
Поскольку в VBA нет операторов сдвига битов, мы используем 2 ^ места для сдвига вправо, а в C # мы можем просто использовать >> для оператора сдвига вправо, но это не дает мне результат, который я получаю в VBA. В чем может быть причина?
Это моя полная функция на C # и она похожа на VBA:
public void bitcalc()
{
var Bit1 = (bitvalue >> 14) | (bitvalue >> 15);
if (Bit1 == 16384) getISO15031BitsLetter = "C";
else if (Bit1 == 32768) getISO15031BitsLetter = "B";
else if (Bit1 == 49152) getISO15031BitsLetter = "U";
else getISO15031BitsLetter = "P" ;
}