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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ Borl 3.1, из HEX в BIN 
:(
    Опции темы
Знак
Дата 27.5.2005, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Подскажите как граматно..

Перевести в (C++ Borland 3.1)
числа из DEC или HEX в BIN
искал в описалове ничего нет... -(

Еще интересует как поделить число HEX на
старший и младший bit
по типу ассемблерной AX == AH + AL
пробывал в C++ 3.1 через

asm {
mov ax, ЛЯЛЯЛЯ
mov ДУДУДУ , al
}

А че дальше писать не знаю в описалове пусто..no exempls in there..-))
Если кто в курсе как в asm{} сделать ссылку на запись числа в РЕГ АХ
и вернуть результат... подскжте плз... на ретурн у меня невыпрыгивает.



--------------------
Ищу 2 файлаowl.tchwindows.tch 
PM MAIL   Вверх
jorkug
Дата 28.5.2005, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



sprintf/printf в принципе это может:
Код

int a = 50;
printf("%d  %x  %o", a,a,a)
//    |    |     |
//decimal hex octal


Это сообщение отредактировал(а) jorkug - 28.5.2005, 03:14
PM MAIL   Вверх
Знак
Дата 28.5.2005, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Чёйто не понятно..

printf();;

это старая конструкция для out stream

%x %h %o; Это не двоичные системы -)

А мне надо двоичную

Ну да ладнось я ужо нарыл кое что...
может напишу попойзже... _0) smile
--------------------
Ищу 2 файлаowl.tchwindows.tch 
PM MAIL   Вверх
Yanis
Дата 28.5.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата
Чёйто не понятно..

printf();;

это старая конструкция для out stream

%x %h %o; Это не двоичные системы -)

А мне надо двоичную

Ну да ладнось я ужо нарыл кое что...
может напишу попойзже... _0) smile

printf в данном случае распечатает число 50 в десятичной (decimal), шестнадцатиричной (hex) и восьмиричной (octal) СС. Но не в двоичной.
Добавлено @ 16:43
Посмотри здесь - форум. Я когда то там приводил пример для перевода из десятичной СС в двоичную СС.

Это сообщение отредактировал(а) Yanis - 28.5.2005, 16:34


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Yanis
Дата 28.5.2005, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вот нашел: здесь.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Знак
Дата 1.6.2005, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Aga Шас посмотрю и попробую спасибки! smile
--------------------
Ищу 2 файлаowl.tchwindows.tch 
PM MAIL   Вверх
versus
Дата 1.6.2005, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 8.3.2005
Где: Переславль-Залесс кий

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



функция печатает двоичное представления числа number в строку binary_string.
binary_string должна быть достаточно большой для удержания двоичного представления числа

Код

#define BITS_PER_BYTE 8

char* get_binary(unsigned int number, char* binary_string)
{
/*    unsigned int mask1 = 0x8000; /* 1000000000000000 -- 32 bit specific!!! */
    unsigned int mask = 0x1;
    mask <<= (sizeof(number) * BITS_PER_BYTE) - 1;

    int pos = 0;

    while (mask)
    {
    if (mask & number)
        binary_string[pos++] = '1';
    else
        binary_string[pos++] = '0';

    mask >>= 1;
    }

    return binary_string;
}


Позвать можно например так
Код

int main(int argc, char* argv[])
{
   const size_t length = sizeof(number) * BITS_PER_BYTE + 1;
   char binary_string[length];
   unsigned int number;

   assert(argc > 1);

   number = (unsigned int)atoi(argv[1]));
   printf("Двоичное представление числа %u:\n", number);
   get_binary(number, binary_string);
   printf("%s\n", binary_string);
   
   return 0;
}


Однако на практике строка для двоичного представления числа используется редко. Проще написать простые функции типа get_bit_at(unsigned int number, unsigned int pos), set_bit_at(unsigned int number, unsinged int pos);
PM MAIL WWW   Вверх
Знак
Дата 2.6.2005, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибки еще раз посмотрю и твой пример Версус...

вообще мне нужно это для того чтобы из файла считывать по 4 bita
т.е. Байт на верхний и нежний рег поделить надо и выводить их в массив по одному!! во как..... smile
если есть готовая прога у кого плиз пожжж. помогите ... smile

а то картинку не вывести!! smile
--------------------
Ищу 2 файлаowl.tchwindows.tch 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.1225 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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