Автор Тема: Bin 2 Dec  (Прочитано 4110 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Bin 2 Dec
« : 18 Октября 2007, 09:52:53 »
Есть например двочика такая 00111001000000000000

нужно её запаковать в более компактный вид..например в число....кто-нить знает как?
« Последнее редактирование: 24 Октября 2007, 06:19:39 от DartSidius »

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Запаковка
« Ответ #1 : 18 Октября 2007, 13:06:10 »
perldoc -f pack
perldoc -f unpack
The documentations is your friend

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Запаковка
« Ответ #2 : 18 Октября 2007, 19:29:15 »
0b00111001000000000000 == 233472

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запаковка
« Ответ #3 : 23 Октября 2007, 02:50:44 »
Я в курсе сколько это будет ) . . .

про пак и анпак...они ж вроде не это делают....они ж запаковывают и распаковывают бинарные данные...

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Запаковка
« Ответ #4 : 23 Октября 2007, 07:53:30 »
число и есть, а вам что надо было?

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запаковка
« Ответ #5 : 23 Октября 2007, 09:26:39 »
Есть строка 0000111001000000000000 . . .  или же бинарные данные в которых эта строка . . . считываю я это так unpack("X20",$bin_data) . . . а нужно получить тупо число в dec 233472

думал может эмо можно как-нить стандартными средствами . . . щя пока реализовал так:


##################################################
sub bin2dec {

my @bin split(//,"$_[0]");

my $dec 0;

my $ves_count 1;

for(
$i=$#bin;$i >= 0; $i--) {
	
if(
$bin[$i] == 1) {
	
	
$dec+=$ves_count;
	
}
	
$ves_count=$ves_count*2;
}

return 
$dec;

}


Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
Запаковка
« Ответ #6 : 23 Октября 2007, 09:49:29 »
вы путаете число и его внешнее представление

Оффлайн DartSidius

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 309
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Запаковка
« Ответ #7 : 24 Октября 2007, 06:19:11 »
ок :)

тему мона закрывать

 

Sitemap 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