Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
#1

Перевод из 16 в 2 - C++

29.04.2012, 19:15. Просмотров 1679. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
char* DecToBin(int x, char* str)
{
    int i;
    for (i = sizeof(x)*8-1; i>=0; i--)
    {
        str[i] = (x&1 == 1) ? '1' : '0';
        x = x >> 1;
    }
    str[sizeof(x)*8] = '\0';
    return str;
}
как,изенив такой алгоритм, перевести 16-е число в 2-е?(сейчас алгоритм работает для 10-го)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 19:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод из 16 в 2 (C++):

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: ка

Заменить в строке все пробелы на перевод строки, а перевод строки изменить на два перевода - C#
Меня интересует следующий вопрос: как заменить в моем стринге все пробелы на переходы на новую строку, а переходы на новую строку изменить...

Разбиение строки на части, перевод строки в число и перевод числа - Java SE
Есть задание: 1. Необходимо реализовать консольное приложение, позволяющее манипулировать строкой, разбив ее на элементы путем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
29.04.2012, 20:14 #2
Цитата Сообщение от Cee K Посмотреть сообщение
как,изенив такой алгоритм, перевести 16-е число в 2-е?(сейчас алгоритм работает для 10-го)
перевод из шестнадцатиричной в двоичную проихходит по гораздо более простому алгоритму. Просто по очереди печатаются тетрады

Добавлено через 13 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
char* HexToBin(char* str_hex, char* str_bin)
{
    int i;
    char tetrad;
    for (i =0; i<strlen(str_hex); i++)
    {
        if (str_hex[i]>='0' && str_hex[i]<='9')tetrad=str_hex[i]-'0';
        else
        if (str_hex[i]>='A' && str_hex[i]<='F')tetrad=str_hex[i]-'A'+10;
        str_bin[i*4+0]=tetrad&0x08;
        str_bin[i*4+1]=tetrad&0x04;
        str_bin[i*4+2]=tetrad&0x02;
        str_bin[i*4+3]=tetrad&0x01;
        
    }
    str_bin[i*4] = '\0';
    return str_bin;
}
0
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
29.04.2012, 21:08  [ТС] #3
спасибо большое)
только я не очень понимаю, что такое strlen?

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
char* HexToBin(char* str_hex, char* str_bin)
{
    int i;
    char tetrad;
    for (i =0; i<strlen(str_hex); i++)
    {
        if (str_hex[i]>='0' && str_hex[i]<='9')tetrad=str_hex[i]-'0';
        else
        if (str_hex[i]>='A' && str_hex[i]<='F')tetrad=str_hex[i]-'A'+10;
        str_bin[i*4+0]=tetrad&0x08;
        str_bin[i*4+1]=tetrad&0x04;
        str_bin[i*4+2]=tetrad&0x02;
        str_bin[i*4+3]=tetrad&0x01;
        
    }
    str_bin[i*4] = '\0';
    return str_bin;
}
 
void main()
{ 
    
    float f = 12.345;
    char str_bin[32];
    char  str_hex[8];
    printf ("%08x\n", *((int*)&f));
    printf("\n%s",HexToBin(str_hex,str_bin));
    getch();
}
в итоге это все будет выглядеть примерно вот так, но программа не срабатывает
0
Kuzia domovenok
2030 / 1874 / 168
Регистрация: 25.03.2012
Сообщений: 6,451
Записей в блоге: 1
29.04.2012, 22:02 #4
Цитата Сообщение от Cee K Посмотреть сообщение
str_bin[i*4+0]=tetrad&0x08;
str_bin[i*4+1]=tetrad&0x04;
str_bin[i*4+2]=tetrad&0x02;
str_bin[i*4+3]=tetrad&0x01;
ну наверное потому как лучше так
C++
1
2
3
4
str_bin[i*4+0]=tetrad&0x08+'0';
str_bin[i*4+1]=tetrad&0x04+'0';
str_bin[i*4+2]=tetrad&0x02+'0';
str_bin[i*4+3]=tetrad&0x01+'0';
Добавлено через 1 минуту
Цитата Сообщение от Cee K Посмотреть сообщение
float f = 12.345;
Что ты пытался сделать, прочитав float как int???
0
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
29.04.2012, 22:24  [ТС] #5
программа вообще должна выводить внутреннее представление числа типа float
сначала перевожу в 16сс, а потом в 2сс

Добавлено через 11 минут
я не понимаю как мне полученное 16чное число засунуть в массив hex_str
0
29.04.2012, 22:24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.