Forum Webscript.Ru

Программирование => Perl => Тема начата: DartSidius от 18 Октября 2007, 09:52:53

Название: Bin 2 Dec
Отправлено: DartSidius от 18 Октября 2007, 09:52:53
Есть например двочика такая 00111001000000000000

нужно её запаковать в более компактный вид..например в число....кто-нить знает как?
Название: Запаковка
Отправлено: NeoNox от 18 Октября 2007, 13:06:10
perldoc -f pack
perldoc -f unpack
Название: Запаковка
Отправлено: arto от 18 Октября 2007, 19:29:15
0b00111001000000000000 == 233472
Название: Запаковка
Отправлено: DartSidius от 23 Октября 2007, 02:50:44
Я в курсе сколько это будет ) . . .

про пак и анпак...они ж вроде не это делают....они ж запаковывают и распаковывают бинарные данные...
Название: Запаковка
Отправлено: arto от 23 Октября 2007, 07:53:30
число и есть, а вам что надо было?
Название: Запаковка
Отправлено: DartSidius от 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 от 23 Октября 2007, 09:49:29
вы путаете число и его внешнее представление
Название: Запаковка
Отправлено: DartSidius от 24 Октября 2007, 06:19:11
ок :)

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