Я пытаюсь явно преобразовать int в ushort, но получаю тип неявного преобразования Cannot int в ushort.
ushort quotient = ((12 * (ushort)(channel)) / 16);
Я использую .Net Micro framework, поэтому BitConverter недоступен. Почему я использую ushort, в первую очередь, связано с тем, как мои данные передаются через SPI. Я могу понять, что эта конкретная ошибка поднималась ранее на этом сайте, но я не понимаю, почему, когда я явно заявляю, что мне все равно, пропадут ли какие-либо данные, просто нарежьте 32-битный бит на 16-битный, и я буду счастлив.
public void SetGreyscale(int channel, int percent)
{
// Calculate value in range of 0 through 4095 representing pwm greyscale data: refer to datasheet, 2^12 - 1
ushort value = (ushort)System.Math.Ceiling((double)percent * 40.95);
// determine the index position within GsData where our data starts
ushort quotient = ((12 * (ushort)(channel)) / 16); // There is 12 peices of 16 bits
Я бы предпочел не менять внутренний канал на канал ushort. Как я могу решить ошибку?