Биты персонажа в Java
Насколько я знаю a
является 8-битным символом, â
является 16-битным символом:
Как узнать, что символ 8 или 16 бит или выше?
Зачем
â
символ не может представить в 8 бит?a
или жеâ
просто форма пользовательского интерфейса, как они выглядят в виде битов?97 код
a
как рассчитать это число или это просто порядковый номер символа?
1 ответ
Насколько я знаю
'a'
является 8-битным символом,'â'
16-битный символ
На самом деле, нет. Джава char
16-разрядный тип без знака, поэтому оба 'a'
а также 'â'
16-битные символы. Правда, что 'a'
Верхние 8 бит установлены на ноль, но эти биты все же есть. То же самое касается 'â'
(увидеть ниже).
Как узнать, что символ 8 или 16 бит или выше?
сравнить ch & 0xFF00
в ноль. Если это ноль, старшие 8 битов - все нули; в противном случае некоторые из этих восьми битов не равны нулю.
Зачем
'â'
символ не может представить в 8 бит?
Это может быть представлено как использование 8-битного: 'â'
Код 0xE2 или 226. Он умещается в 8 бит, но не умещается в 7 бит. Вот удобная таблица для поиска кодов символов.
'a'
или же'â'
просто форма пользовательского интерфейса, как они выглядят в виде битов?
поскольку char
является интегральным типом, вы можете преобразовать его в int
и выведите их в двоичном, десятичном, шестнадцатеричном или другом формате, чтобы увидеть битовые комбинации за символьными представлениями.
97 код
'a'
как рассчитать это число или это просто порядковый номер символа?
В ролях 'a'
для int
:
int a = (int)'a';