Я пытаюсь понять, почему BigInteger бросает исключение переполнения. Я попытался визуализировать это, преобразовывая BigInteger в byte[]
и итеративно увеличивая сдвиг, пока не увижу, где происходит исключение.Должен ли я иметь возможность смещать бит >> массив байтов?
- Должен ли я иметь возможность битового сдвига >> байт [] или C# просто не в состоянии?
код вызывает исключение
uint amountToShift2 = 12;
BigInteger num = new BigInteger(-126);
uint compactBitsRepresentation = (uint)(num >> (int)amountToShift2);
Вы не можете поменять бит байта [], но вы не получите исключение; он просто не будет компилироваться. Что вы делаете, это смещение бита BigInteger –
, где объявлены 'num' и' amountToShift2'? можете ли вы опубликовать [SSCCE] (sscce.org), чтобы мы могли скопировать и вставить ваш код? –
@SamIAm - SSCE обновлено.Это все, что вам нужно, кроме ссылки на System.Numerics – LamonteCristo