Объяснение формата данных QByteArray

Я запутался в данных QByteArray. Может кто-нибудь объяснить, пожалуйста, сценарий ниже для меня.
введите описание изображения здесь

Здесь тип данных для каждого индекса массива — char. Я понимаю некоторые из этих ценностей. подобно 74 'J'
Я понимаю, что первый — ASCII, а второй — соответствующий символ. Но в чем смысл -1 '\\377'

Также, что означает нижеприведенный графический интерфейс? Я послал QByteArray выше в функцию, которая принимает QByteArray как unsigned char* source, Нижеследующий графический интерфейс показывает значение этого source,
введите описание изображения здесь

Основной сбивающей с толку частью является значение первой строки 0x87089e8 "\377\330\377\340"

1

Решение

char в C / C ++ это подписанный 1-байтовое целое число Этот графический интерфейс просто выражает это значение в виде десятичного числа со знаком и эквивалентного ASCII персонаж.

Вы спрашиваете о значении байта -1, которое можно интерпретировать следующими способами:

Binary     11111111
Octal      0377
Hex        0xFF
Decimal    -1    (Signed)
255   (Unsigned)

ASCII      \377
\xFF

Обратите внимание, что для 255 не существует стандартного печатаемого символа ASCII, поэтому они показывают его так, как делают.

Другой пример:

Binary     01001010
Octal      0112
Hex        0x4A
Decimal    74    (Signed)
74   (Unsigned)
ASCII      'J'
2

Другие решения

Я отвечаю о значении 0x87089e8 "\377\330\377\340",

0x87089e8 это значение source указатель, т.е. это адрес
в памяти. "\377\330\377\340" строка символов хранится при этом
адрес, записанный как восьмеричные escape-последовательности. Это написано так
потому что ни один из этих символов не является ASCII (ASCII идет только от 0 до
127). В шестнадцатеричном формате строка байтов ff d8 ff e0 00, 00 в конце
интерпретируется как и конец строки (ASCII NULL).

2

По вопросам рекламы [email protected]