![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
ТАК? |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
а так не прохляет?
![]() |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
писал чисто интуиитовно..... даже не компилил...боюсь ![]() archimed7592 посмотри... |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Defoult, что должна возвращать ф-ция setBit? Какой смысл будет нести это возвращаемое значение? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
Ну как.....возвращаем буфер, в котором указанный бит заменили на опредилённый "0" или "1"...
млин, копи паст рулит ![]() Это сообщение отредактировал(а) Defoult - 26.12.2007, 23:30 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Ок, поставлю вопрос немного иначе: зачем ей вообще что-то возвращать? getBit - взять бит, т.е. ф-ция должна его вернуть. А setBit - установить бит - что в таком случае ещё возвращать нужно?
Ещё такой момент: const void *buf - это указатель на неизменяемую область память. getBit незачем изменять эту область, потому там и const. А setBit должна изменять эту область - соответственно с const что нужно сделать? -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
Вродь понял, мы передаём буфер прямо в функцию, и там его обрабатываем... "Наверное так!", сказал тов. Ленин... ![]() Это сообщение отредактировал(а) Defoult - 26.12.2007, 23:55 |
|||
|
||||
archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Отлично, только ты убрал const из прототипа, а из самого кода не убрал(ты же именно там и будешь менять значение байта).
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Defoult, лучше скомпилируй и, когда у тебя это получится, отладь.
|
|||
|
||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
млин, я пока толком и не понимаю как полностью работает эта функция... char *cb - это указатель cb типа char на buf типа указатель на тип char, а зачем? и что за тип данных size_t??? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Defoult, char *cb - это лишь для удобства. Арифметические операции с типом void* невозможны.
cb2 - это смещенный указатель на (n/CHAR_BIT) байтов. size_t - это стандартный тип, обозначающий размер. Например, unsigned long. Но лучше использовать именно size_t. |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 6 Всего: 93 |
Ну как же зачем. Нам нужно определить в каком байте нужно заменить бит. В байте 8 бит. Т.е. при замене 10-го бита нужно изменять 1-й байт. cb указывает на нулевой байт области памяти в который мы битами оперируем. cb2 равен cb плюс 10 / 8 т.е. cb + 1 т.е. cb2 указывает на 1-й байт(то что нужно). size_t - можешь считать, что это unsigned int. Добавлено через 2 минуты и 39 секунд Теперь смотри. У тебя есть
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
Defoult |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.9.2007 Где: Ростов-на-дону Репутация: нет Всего: нет |
ну как, сдвинуть с на bn, и записать в 0 бит единицу,
const int MASK = 0; ..... c = ((c << bn) | MASK); .....
Это сообщение отредактировал(а) Defoult - 27.12.2007, 18:04 |
|||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
ой. кто так делает? Установить бит bn в переменной c:
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |