Сравнивая UTF-8 и UTF-16, можно отметить, что наибольший выигрыш в компактности UTF-8 даёт для текстов на латинице, поскольку латинские буквы без диакритических знаков, цифры и наиболее распространённые знаки препинания кодируются в UTF-8 лишь одним байтом, и коды этих символов соответствуют их кодам в ASCII
кодируются в UTF-8 лишь одним байтом
d0bf d180 d0b8 d0b2 d0b5 d182привет
bfd0 80d1 b8d0 b2d0 b5d0 82d1
в любом случае данные в сеть нужно отправлять в big-endian, а будут они преобразовываться в little-endian на другом концетаким образом, в сеть отправляется всегда переведенная в big-endian информация?
Целые числовые данные из представления, принятого на компьютере-отправителе, переводятся пользовательским процессом в сетевой порядок байт, в таком виде путешествуют по сети и переводятся в нужный порядок байт на машине-получателе процессом, которому они предназначены. Для перевода целых чисел из машинного представления в сетевое и обратно используется четыре функции: htons() , htonl() , ntohs() , ntohl() .отсюда
push word 1
push word 1
push word 1
push word 1
push 1
push 1
push 1
push 1
0031F844 00000001
0031F848 00000001
0031F84C 00000001
0031F850 00000001
0031F854 00010001
0031F858 00010001
int WSAStartup(
WORD wVersionRequired,
WORD test
);
mov ax, word [0]
- что тогда произойдет? на самом деле процессор возьмет не 2, а 4 байта и из них возьмет 2 старших (в little-endian), если требуемые байты находились по адресу 0? То-есть