Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

RusFAQ.ru: Программирование на C / C++

Выпуск № 540
от 26.06.2004, 00:40

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1729
Отправлено ответов: 3423
Активность: 197.9 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

vitya
Статус: Профессиональный
Общий рейтинг: 109.41
[Подробней >>]
CrackLab
Статус: Опытный
Общий рейтинг: 135.05
[Подробней >>]
bocha
Статус: Опытный
Общий рейтинг: 148.53
[Подробней >>]
 
chebv
Статус: Опытный
Общий рейтинг: 108.65
URL: Chebv
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1722. Здравствуйте! (1)Подскажите, пожалуйста, почему при printf(“%d”,-1&0xFF); напечатается 255, а при p... (ответов: 3)
Вопрос № 1723. Здравствуйте, уважаемые эксперты! Где найти сайт содержащий базу RFC'эшек?... (ответов: 2)

Вопросов: 2, ответов: 5


 Вопрос № 1722

Здравствуйте!
(1)Подскажите, пожалуйста, почему при printf(“%d”,-1&0xFF);
напечатается 255, а при printf(“%d”,-1); напечатается –1.
Что происходит при побитовом или, в данном примере?
(2)unsigned char a=-96;
unsigned int b=-96;
printf(“%d %d ”,a,b);
И почему a напечатается 160, b напечатается –96.
(Тестировано в Borland 3.1)
Спасибо.



Вопрос отправлен: 22.06.2004, 19:41
Отправитель: Alexander

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Приветствую Вас, Alexander!
1. слишком много левых символов.
2. %d ожидает int. A вы даете char - это опасно. А так - %d в случае с char - ом там положительное число так как нет знакового расширения - слева дополняются 0.

Ответ отправлен: 23.06.2004, 09:00
Отправитель: vitya


Отвечает CrackLab

Доброе время суток, Alexander!
1) Разница в том, какой параметр передается функции printf.
Смотрите. -1 & 0xFF = 0xFFFFFFFF & 0x000000FF = 0x000000FF = 255.
-1 = 0xFFFFFFFF = -1 =)
Думаю все понятно.
2) unsigned char - однобайтовая переменная. Когда мы пишем unsigned char a = -96, то по адресу, по которому находится наш байт, хранящий значение переменной а, записывается 0x0A, т.к. при однобайтовом рассмотрении это и есть -96.
unsigned int - четырехбайтовая переменная. Когда мы пишем unsigned int b = -96, то по адресу, по которому находятся наши 4 байта, хранящие значение переменной b, записывается 0xFFFFFF0A, т.к. при четырехбайтовом рассмотрении это и есть -96.
Формат "%d" указывает функции printf рассматривать передаваемые значение как четырехбайтовые целые числа.
Далее вместо a функции printf передается dword (4х байтовое число) 0x000000A0 = 160 при четырехбайтовом рассмотрении, что мы и видим на экране. Вместо b передается 0xFFFFFFA0 = -96 при четырехбайтовом рассмотрении, что мы тоже видим на экране.

Ответ отправлен: 22.06.2004, 20:57
Отправитель: CrackLab


Отвечает bocha

Приветствую Вас, Alexander!
1.-1==0xffffffff, 0xffffffff&0xff == 0xff


Ответ отправлен: 23.06.2004, 02:29
Отправитель: bocha


 Вопрос № 1723

Здравствуйте, уважаемые эксперты!
Где найти сайт содержащий базу RFC'эшек?



Вопрос отправлен: 22.06.2004, 20:25
Отправитель: rfc

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Доброе время суток, rfc!
http://www.google.com/search?ie=windows-1251&q=rfc+archive

Ответ отправлен: 23.06.2004, 08:55
Отправитель: vitya


Отвечает chebv

Добрый день, rfc!
http://www.ietf.org/rfc.html
http://www.opennet.ru/rfc.shtml
http://www.rfc-editor.org/
Но самый лучший http://www.ya.ru :)

Ответ отправлен: 23.06.2004, 09:28
Отправитель: chebv



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (14)
Perl (3)
Builder / Delphi (17)
Pascal (27)
Basic / VBA (7)
Java / JavaScript (5)
PHP (13)
Криптография (8)
WinAPI (12)
Радиоэлектроника (12)
Пользователю
Windows 95/98/Me (37)
Windows NT/2000/XP (50)
"Железо" (34)
Поиск информации (14)
Администратору
Windows NT/2000/XP (30)
Linux / Unix (14)
Юристу
Гражданское право (11)
Семейное право (8)
Трудовое право (9)
КоАП (7)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться

В избранное