Модераторы: Daevaorn

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Что такое UINT? Как обращаться, etc. 
:(
    Опции темы
DENNN
Дата 18.4.2003, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Аминь.
PM ICQ   Вверх
Step
Дата 18.4.2003, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



smile.gif


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
HexoGenus
Дата 19.4.2003, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 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

а вот насчет того где какой бит находится вопрос интересный...
слабо кому нибудь привести пример функции которая выведет в текстовую переменную побитово переменную любого типа по ее адресуconfused.gif
например что бы вместо int(5) получить String("00000000000000000000000000000101")
каюсь в свое время у меня это не получилось... вроде и адрес переменной брал и потом как к булевому массиву обращался проверяя значение каждого бита... но получалась какая то чепуха вместо числа...

Это сообщение отредактировал(а) HexoGenus - 19.4.2003, 21:14
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
DENNN
  Дата 19.4.2003, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



По поводу размерности лучше все-таки на константы не расчитывать. Потому как в стандарте на C (и C++ тоже!) указано, что размерность некоторых типов данных может зависеть от конкртной реализации компилятора. А мы то с вами всетаки на C пишем а не просто на билдере или там VC.

А насчет второго вопроса, то он в общем смысле некоректен. То как располагается в памяти число, зависит в первую очередь, какой тип данных оно собой представляет. Так байт вида 0x10000001 может трактоваться и как число 129 если это тип unsigned char (на Win), и как -2 если это тип char.

Просто вывести все биты в тестовую переменную проблемы никогла не вызывало:
Код

BYTE mask=1;
BYTE value=68;//то, что хотим распечатать
do
{
if (0==(value&mask)) printf("0");else printf("1");
mask=(BYTE)(mask*2);
} while (mask!=0);

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

Это сообщение отредактировал(а) DENNN - 20.4.2003, 12:18
PM ICQ   Вверх
HexoGenus
Дата 20.4.2003, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Хммм....
и все таки я не на с а на билдере программирую и приходится использовать все его надстройки и соответствующие расширения... smile.gif
твой код у мне не удалось запустить...
компилятор ругался на BYTE
от этого я избавился подключив
#include <WTYPES.H>
а вот строчку
} while (BYTE!=0);
он совсем не принимает ...
к своему стыду я не знаю что означает конструкция
value&mask
просвети плиз...
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
DENNN
Дата 20.4.2003, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: 1
Всего: 43



Сорри. Ответ писал ночью поэтому там ошибочка: не while (BYTE!=0); а while (mask!=0); sad.gif

Уже все исправил. Смотри заново.

Конструкция (value&mask) означает в C побитовую операцию AND.
тип BYTE в MSDN описывается как "BYTE An 8-bit integer that is not signed." иными словами это 8-мибитное беззнаковое целое. В моем примере не принципиально, можно заменить на unsigned char, int, long и т.п..

PM ICQ   Вверх
Voker57
  Дата 21.4.2003, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 278
Регистрация: 18.2.2003
Где: Краснодар

Репутация: нет
Всего: 1



Цитата
эт ты чегото не досмотрел....

А мне по жизни с компиляторами не везет...
ТЕМУ ПОРА ЗАКРЫВАТЬ а так ни фига и не ясно... sad.gif
А тема горячая, аж мышка плавится! cool.gif



--------------------
Но кто из вас не прав, кто виноват во всей создавшейся никчёмной сложности
Судить об этом не имею никакой возможности.
При следующем свидании вы сами выйдете из тупика.
Ну, до свидания, пока. :-)
Д.И. Хармс
Самый радиоактивно загрязненный сайт 2004
PM MAIL WWW ICQ YIM   Вверх
Fantasist
Дата 21.4.2003, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 4
Всего: 41



Цитата
иными словами это 8-мибитное беззнаковое целое


Другими словами typedef unsigned char

Цитата
на C пишем


На С++. Разные языки все-таки.


--------------------
Волны гасят ветер...
PM MAIL   Вверх
Wowa
Дата 22.4.2003, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



тема закрыта smile.gif
PM WWW   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.