![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Аминь.
|
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
![]() -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
По поводу размерности проще посмотреть хелп билдера...
unsigned char 8 bits 0 to 255 char 8 bits -128 to 127 short int 16 bits -32,768 to 32,767 unsigned int 32 bits 0 to 4,294,967,295 int 32 bits -2,147,483,648 to 2,147,483,647 unsigned long 32 bits 0 to 4,294,967,295 enum 16 bits -2,147,483,648 to 2,147,483,647 long 32 bits -2,147,483,648 to 2,147,483,647 float 32 bits 3.4 x 10-38 to 3.4 x 10+38 double 64 bits 1.7 x 10-308 to 1.7 x 10+308 long double 80 bits 3.4 x 10-4932 to 1.1 x 10+4932 а вот насчет того где какой бит находится вопрос интересный... слабо кому нибудь привести пример функции которая выведет в текстовую переменную побитово переменную любого типа по ее адресу ![]() например что бы вместо int(5) получить String("00000000000000000000000000000101") каюсь в свое время у меня это не получилось... вроде и адрес переменной брал и потом как к булевому массиву обращался проверяя значение каждого бита... но получалась какая то чепуха вместо числа... Это сообщение отредактировал(а) HexoGenus - 19.4.2003, 21:14 --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
По поводу размерности лучше все-таки на константы не расчитывать. Потому как в стандарте на C (и C++ тоже!) указано, что размерность некоторых типов данных может зависеть от конкртной реализации компилятора. А мы то с вами всетаки на C пишем а не просто на билдере или там VC.
А насчет второго вопроса, то он в общем смысле некоректен. То как располагается в памяти число, зависит в первую очередь, какой тип данных оно собой представляет. Так байт вида 0x10000001 может трактоваться и как число 129 если это тип unsigned char (на Win), и как -2 если это тип char. Просто вывести все биты в тестовую переменную проблемы никогла не вызывало:
Может не самое быстрое решение из всех возможных, но этот то что пришло в голову сразу. Да и загнать в шаблон такую inline функцию - задача выполнимая для всех Это сообщение отредактировал(а) DENNN - 20.4.2003, 12:18 |
|||
|
||||
HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Хммм....
и все таки я не на с а на билдере программирую и приходится использовать все его надстройки и соответствующие расширения... ![]() твой код у мне не удалось запустить... компилятор ругался на BYTE от этого я избавился подключив #include <WTYPES.H> а вот строчку } while (BYTE!=0); он совсем не принимает ... к своему стыду я не знаю что означает конструкция value&mask просвети плиз... --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
DENNN |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Сорри. Ответ писал ночью поэтому там ошибочка: не while (BYTE!=0); а while (mask!=0);
![]() Уже все исправил. Смотри заново. Конструкция (value&mask) означает в C побитовую операцию AND. тип BYTE в MSDN описывается как "BYTE An 8-bit integer that is not signed." иными словами это 8-мибитное беззнаковое целое. В моем примере не принципиально, можно заменить на unsigned char, int, long и т.п.. |
|||
|
||||
Voker57 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 278 Регистрация: 18.2.2003 Где: Краснодар Репутация: нет Всего: 1 |
А мне по жизни с компиляторами не везет... ТЕМУ ПОРА ЗАКРЫВАТЬ а так ни фига и не ясно... ![]() А тема горячая, аж мышка плавится! ![]() -------------------- Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности Судить об этом не имею никакой возможности. При следующем свидании вы сами выйдете из тупика. Ну, до свидания, пока. :-) Д.И. Хармс Самый радиоактивно загрязненный сайт 2004 |
|||
|
||||
Fantasist |
|
||||
![]() Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Другими словами typedef unsigned char
На С++. Разные языки все-таки. -------------------- Волны гасят ветер... |
||||
|
|||||
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
тема закрыта
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |