Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сконвертить бинарные данные

10K
29 сентября 2007 года
nuhop
50 / / 24.03.2007
Файл data.txt содержит бинарные данные. Это число. В hex-е оно как 061A80. Как получить это число в десятичном виде (должно быть 400000)? Известно, что расчет должен строиться на: 06 - 6, 1A - 26, 80 - 128, тогда 6*256*256+26*256+128 = 400000. Как средствами C сконвертить 06 в 6, 1A в 26, 80 в 128?
1.9K
29 сентября 2007 года
[*]Frosty
278 / / 17.06.2006
См. atoi и itoa
atoi - строку в число,
а itoa - число в строку
Обрать внимание на параметр radix
10K
30 сентября 2007 года
nuhop
50 / / 24.03.2007
Для пацанов, кто столкнется с этой проблемой:

Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <io.h>

int
main()
{
  int i;
  unsigned char str[20];
  int in, bytes;
  int a, b, sum = 0;

  memset(str, 0, sizeof(str));

  if ((in = open("readme", O_RDONLY | O_BINARY, S_IWRITE | S_IREAD)) == -1)
  {
     printf("Error while opening input!\n");
     exit(1);
  }

  if ((bytes = read(in, str, 10)) == -1)
  {
     printf("Read Failed.\n");
     exit(1);
  }
  else
  {
     printf("Read: %d bytes read.\n", bytes);
  }

  printf("STR: %s\n", str);

  for (i = bytes-1, b = 1; i > -1; i--, b *= 256 )
  {
    a = str;
    sum += a*b;
    printf("%d. %d -> %d\n", i, a, sum);
  }

  return 0;
}
13K
01 октября 2007 года
specter
113 / / 28.09.2007
Ой Ё :) Немного измененный цикл

 
Код:
undigned int value = 0;
 for (i = 0; i < bytes ; ++i )
    value = (value<<8) + str;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог