32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
1

Конвертирование типов данных

23.05.2022, 16:11. Показов 423. Ответов 15
Метки нет (Все метки)

Неподскажите, как правильно тип int сконвертировать в байтовую строку?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2022, 16:11
Ответы с готовыми решениями:

Конвертирование типов данных
Нужно обработать данные. Пропустить их через кучу функций, каждая из них требует свой тип данных....

Конвертирование в bool собственных типов
Здравствуйте! Класс rnode оболочка над указателем для подсчета ссылок. Вот код: class rnode...

Конвертирование типов или указатель на функцию
Создаю класс mainwindow, в нём есть функции dispatcher_handler и interception. В interception есть...

Конвертирование данных БД Access в char
Здравствуйте, необходимо вытащить данные из определенной ячейки БД в строковую переменную ...

15
Нарушитель
8294 / 4379 / 1004
Регистрация: 12.03.2015
Сообщений: 20,469
23.05.2022, 16:15 2
Цитата Сообщение от JIupToH Посмотреть сообщение
Неподскажите, как правильно тип int сконвертировать в байтовую строку?
Это ты шо имеешь в виду?
100500 ----> "0x18894"
100500 ----> "94 88 01 00"
0
32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
23.05.2022, 17:54  [ТС] 3
Verevkin, на питоне есть функция int_to_bytes. https://www.geeksforgeeks.org/... in-python/
Вот собственно хотел узнать, правильно ли я понял, что строка «10875» -> «3130383735»?
0
Нарушитель
8294 / 4379 / 1004
Регистрация: 12.03.2015
Сообщений: 20,469
23.05.2022, 17:55 4
Цитата Сообщение от JIupToH Посмотреть сообщение
правильно ли я понял, что строка «10875» -> «3130383735»?
да.
1
32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
27.05.2022, 17:21  [ТС] 5
Verevkin, а не подскажите как сконвертировать бинарное число в виде строки «111101000110011110» (бинарный вид)-> «3d19e» (шестнадцатеричная форма) -> «250270»(десятичная форма)

Добавлено через 6 минут
Verevkin, как строку число в десятичной форме представить как строку в шестнадцатиричной или двоичной… Мне бы хоть идею подкинуть как это лучше сделать. Потому что размер числа может больше быть чем unit64_t
0
171 / 144 / 50
Регистрация: 09.03.2016
Сообщений: 1,259
27.05.2022, 17:39 6
Есть такая функция
_i64toa(value, buffer, 2);// последнее число= 16 в шестнадцатеричных... 2 - в двоичных

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
int _tmain(int argc, _TCHAR* argv[])
{
char *masStr = "9523569812";
 
for (int i = 0; i < strlen(masStr); ++i){
char buffer[20];    //--
        __int64 value = (__int64)masStr[i] - 48;
        _i64toa(value, buffer, 2);//число= 16 в шестнадцатеричных... 
 
char buffer_n[20];
        int len = strlen(buffer);
        
        if (len < 4){ strcpy(buffer_n, "0");
    while (++len < 4)strcat(buffer_n, "0");
        }
      else strcpy(buffer_n, "");
         
         strcat(buffer_n, buffer);
    //---------------------------------------
         std::cout << buffer_n << " --- " << masStr[i] << std::endl;
                               }
    getchar();
    return 0;
}
0
171 / 144 / 50
Регистрация: 09.03.2016
Сообщений: 1,259
27.05.2022, 17:44 7
https://www.cyberforum.ru/atta... 1653662638
Изображения
 
0
32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
27.05.2022, 18:19  [ТС] 8
Наталья8, для шестнадцатиричной формы и бинарной сделал, а вот с десятичной пока затык.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int foo(const uint8_t at)
{
if((at > 0x2f)&&(at<0x3a))
return (at - 0x30);
if((at > 0x60)&&(at<0x67))
return (at - 0x57);
if((at > 0x40)&&(at<0x47))
return (at - 0x41);
}
 
void hex2bin (const string strin, string &strout)
{
for(int i =str.size()-1; i >= 0; i—)
{
uint8_t shift = 0;
char t1 = str[i];
while(shift < 4)
{
temp+=((foo(t1>>shift)&0x01);
shift++;
}
}
}
0
171 / 144 / 50
Регистрация: 09.03.2016
Сообщений: 1,259
27.05.2022, 18:30 9
Перевод двоичного числа в десятичное

Добавлено через 39 секунд
В гуглоиде полно совпадений...

Добавлено через 3 минуты
Я такие проблемы лет пять назад решал.
0
32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
27.05.2022, 19:56  [ТС] 10
Наталья8, спасибо, но я сделал подобным образом)) Только вот с 10 как пока не совсем понятно…

Добавлено через 3 минуты
Наталья8, для шестнадцатиричной формы и бинарной сделал, а вот с десятичной пока затык. Да но я только с числами работаю как со строками…

Добавлено через 1 час 12 минут
Наталья8, вот допустим есть строка s=“a23c4d”, записать в переменную mpz_t? Чтобы переменная mpz_t y имела значение “а23c4d”?

Добавлено через 2 минуты
С идентификаторами ошибся, а так mpz_ser_str
0
Нарушитель
8294 / 4379 / 1004
Регистрация: 12.03.2015
Сообщений: 20,469
27.05.2022, 20:55 11
Цитата Сообщение от JIupToH Посмотреть сообщение
Verevkin, а не подскажите как сконвертировать бинарное число в виде строки «111101000110011110» (бинарный вид)-> «3d19e» (шестнадцатеричная форма) -> «250270»(десятичная форма)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
#include <cstdint>
 
bool try_bs2uint32(char* src, uint32_t &dest)
{
  if (!*src) return false;
  for (dest = 0; *src; src++)
    if ((uint8_t)(*src ^ 0x30) < 2) dest <<= 1, dest |= *src & 1; 
    else return false; 
  return true;
}
 
int main()
{
  char src[] = "111101000110011110";
  uint32_t dest;
  if (try_bs2uint32(src, dest)) printf("# \x22%s\x22 ---> %u = 0x%X\n", src, dest, dest);
  else printf("! \x22%s\x22 is incorrect", src);
  return 0; 
}
0
171 / 144 / 50
Регистрация: 09.03.2016
Сообщений: 1,259
27.05.2022, 22:42 12
«1111

Добавлено через 6 минут
Только хотел озаботиться, как продавец времени
уже написал. Или где то нашёл.
0
Нарушитель
8294 / 4379 / 1004
Регистрация: 12.03.2015
Сообщений: 20,469
27.05.2022, 22:47 13
Цитата Сообщение от Наталья8 Посмотреть сообщение
Или где то нашёл.
Если б искал и нашёл - сцылку бы скинул. Не барское это дело - чужой код копипастить.
0
32 / 20 / 13
Регистрация: 20.05.2022
Сообщений: 294
27.05.2022, 22:53  [ТС] 14
Verevkin, просто мне интересно, а если значение больше, чем может вместить uint32_t?
0
Нарушитель
8294 / 4379 / 1004
Регистрация: 12.03.2015
Сообщений: 20,469
27.05.2022, 22:59 15
Цитата Сообщение от JIupToH Посмотреть сообщение
просто мне интересно, а если значение больше, чем может вместить uint32_t?
Если строка нулей и единиц длиной больше 32, функция вернёт неверный результат.
Именно поэтому в её имени присутствует "32" - try_bs2uint32().
0
171 / 144 / 50
Регистрация: 09.03.2016
Сообщений: 1,259
27.05.2022, 23:43 16
Вот тоже накопал...
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
// stoi example
#include <iostream>   // std::cout
#include <string>     // std::string, std::stoi
 
// https://stackoverflow.com/questions/14733761/printf-formatting-for-hexadecimal
 
int main()
{
    std::string str_dec = "2001, A Space Odyssey";
    std::string str_hex = "40c3";
                                         std::string str_bin = "-10010110001";//<======== Вот 
    std::string str_auto = "0x7f";
 
    std::string::size_type sz;   // alias of size_t
 
    int i_dec = std::stoi(str_dec, &sz);
    int i_hex = std::stoi(str_hex, nullptr, 16);
                                 int i_bin = std::stoi(str_bin, nullptr, 2);//<======== В десятичное
    int i_auto = std::stoi(str_auto, nullptr, 0);
 
    //-------------------------------------------------
    std::cout << str_dec << ": " << i_dec << " and [" << str_dec.substr(sz) << "]\n \n";
    std::cout << str_hex << ": " << i_hex << '\n';
    
              printf(" ======> 0x%04x\n", i_hex);//<======== Вывод шестнадцатеричного
    
                                     std::cout << str_bin << ": " << i_bin << '\n';// <============ Вывод десят.
    std::cout << str_auto << ": " << i_auto << '\n';
    std::cin.get();
    return 0;
}
Добавлено через 2 минуты
Есть такая волшебная функция...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2022, 23:43
Помогаю со студенческими работами здесь

Конвертирование типов данных
Как конвертировать тип String в тип PAnsiChar?И обратно?:eek:

Конвертирование типов
Как сконвертировать тип OleVariant в String или какой-нибудь нормальный Delphi'йский???

Конвертирование типов
Всем салют! Пытаюсь скомпилировать программу, но получаю следующую ошибку: отсутствуют экземпляры...

Конвертирование типов
Подскажите, как реализовать интерфейс, который способен конвертировать типы? Например, чтобы можно...

JNI. Конвертирование типов
Меня интересует такой вопрос, мне необходимо передать массив байтов из Java в Jni-оболочку, через...

конвертирование или приведение типов
есть две переменные типа object, мне нужно: -одну преобразовать в тип OperationRequest, -другую...

Решение задач на конвертирование типов Double String
нужна помощь в решении Составьте программу для вычисления функции в соответствии со своим...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru