, например, в C, преобразование -1234 в неподписанные символ станет 46:В Java, как имитировать «преобразование отрицательных чисел, отличных от unsigned char в c»?
int main(){
int a=-1234;
unsigned char b=a;
printf("%d\n",b);
return 0;
};
Я хочу, чтобы преобразовать код в Java-версии, теперь код:
public class Test{
public static void main(String[] args){
int a=-1234;
int b=(a%(Byte.MAX_VALUE-Byte.MIN_VALUE+1))+(a<0?(Byte.MAX_VALUE-Byte.MIN_VALUE+1):0);
System.out.println(b);
}
}
Есть ли более быстрый (или более простой) способ сделать это (например: побитовая операция)?
Char - это 16-битный тип данных. Почему вы используете байт? Кроме того, я думаю, что ваше преобразование примера c не определено и будет иметь разные результаты для разных целых представлений. – matt
Что случилось с этим странным кодом? Это просто 'b = a & 0xFF' – harold
Обратите внимание, что' unsigned char' не гарантируется какого-либо определенного размера. – juanchopanza