У меня есть значение длиной 5 бит. 4 бита определяют число, а 5-й бит определяет знак, сохраняя любое значение от -16 до +15. Как я могу выполнить расширение знака от постоянной битовой ширины в С#? Я знаю, что в C я могу использовать что-то вроде следующего, чтобы выполнить это:
int x; // convert this from using 5 bits to a full int
int r; // resulting sign extended number goes here
struct {signed int x:5;} s;
r = s.x = x;
Как я могу сделать что-то подобное на С#?