C # Байтовый калькулятор - PullRequest
0 голосов
/ 20 декабря 2018

Моя проблема в том, что, например, когда я собираюсь добавить 0x02 к 0xFF, я получаю значение 0x101, которое является правильным, но возможно ли получить значение 0x01 из 0xFF + 0x02.Поэтому, если значение превышает 0xFF, оно сбрасывается на 0x00.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Если вы хотите получить byte давайте приведение к byte (и включите IntegerOverflowException при возможном переполнении с помощью unchecked):

byte a = 0x02;
byte b = 0xFF;

// unchecked: do not throw exception on overflow 
byte result = unchecked((byte) (a + b));

Или (если вам нужно выполнить много операций):

byte a = 0x02;
byte b = 0xFF;

unchecked {
  byte result1 = (byte) (a + b);
  byte result2 = (byte) (2 * a + b);
  ... 
}
0 голосов
/ 20 декабря 2018

Мод это 0x100

result = (0x02+0xff)%0x100
...