Member 12910589 Ответов: 2

Пожалуйста, объясните, что выполняет этот код.


Кто-нибудь, пожалуйста, объясните, что делает этот код ... я работаю на аудио стеганографии
для(i=24, j=0; i>=0; i-=8, j++)
{
tempInt= inputFileSize;
tempInt>>= i;
tempInt&= 0x000000FF;
tempByte[j]= (байт) tempInt;
}

Что я уже пробовал:

почему цикл начинается с 24??.

Richard MacCutchan

Как может кто-нибудь ответить на такой вопрос? Мы понятия не имеем, откуда взялся этот код и что он должен делать. Я уже объяснял, что этот форум не способен научить вас программированию. Если вы не понимаете код, то вам следует заполучить хороший справочник.

2 Ответов

Рейтинг:
15

Jochen Arndt

Код разбивает 32-битное число inputFileSize в 4 байта, хранящиеся в tempByte[] в обратном порядке. Это похоже на

tempByte[0] = (inputFileSize >> 24) & 0xff;
tempByte[1] = (inputFileSize >> 16) & 0xff;
tempByte[2] = (inputFileSize >> 8) & 0xff;
tempByte[3] = inputFileSize & 0xff;

Цикл начинается с 24, потому что именно на сколько битов должен быть сдвинут старший байт, чтобы он занял позицию 8-битного значения.


Member 12910589

спасибо Вам за это ... знаете ли вы, как реализовать звуковую стеганографию?..

Jochen Arndt

К сожалению, нет.

"Звуковая стеганография" - это широкая тема. Вам нужно сузить его по некоторым спецификациям, таким как тип данных аудионосителя, таких как WAV и тип кодера.

В сети есть много ресурсов, которые должны помочь, и могут быть даже существующие реализации. Просто найдите ключевые слова, соответствующие вашим требованиям и спецификациям.

Member 12910589

у меня есть существующий код, но я не знаю, как он работает, объясните это, пожалуйста.

Jochen Arndt

Извините, но это не является целью этого сайта.

Мы ответим на короткие вопросы, но не будем предоставлять подробные услуги.
Мы все здесь добровольцы, и нам не платят, и мы тоже должны выполнять свою обычную работу.

Вы также научитесь лучше и быстрее, если попытаетесь понять существующий код самостоятельно. Для этого требуется хотя бы базовое знание используемого языка программирования.

Member 12910589

О, Спасибо тебе ... узнаете их ... и, пожалуйста, направь меня для этого.

Рейтинг:
1

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.