Я пытаюсь прочитать содержимое файла PNG.
Как вы, возможно, знаете, все данные записываются 4-байтовым способом в png-файлах, как текстовых, так и числовых.поэтому, если у нас есть номер 35234, он сохраняется следующим образом: [1000] [1001] [1010] [0010].
, но иногда числа короче, поэтому первые байты равны нулю, и когда я читаюмассив и приведение его от char * к целому числу Я получаю неправильное число.например [0000] [0000] [0001] [1011] иногда числа неверно интерпретируются как отрицательные числа, а время от времени - как ноль!
Позвольте мне привести интуитивный пример:
char s_num[4] = {120, 80, 40, 1};
int t_num = 0;
t_num = int(s_num);
IЕсли бы я мог хорошо объяснить свою проблему!
как я могу привести такие массивы в одно целое значение?
хорошо, хорошо, хорошо, позвольте мне изменить мой код, чтобы объяснить его лучше:
char s_num[4] = {0, 0, 0, 13};
int t_num;
t_num = *((int*) s_num);
cout << "t_num: " << t_num << endl;
здесь мы должны получить 13 в результате, хорошо?но опять же с этим новым решением ответ неверен, вы можете проверить на своих компьютерах!я получаю этот номер: 218103808, что, безусловно, неправильно!