Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  15 Feb 2001  15:09:59
 To : Roman Terleev
 Subject : Re: функция
 -------------------------------------------------------------------------------- 
 
 В твоём письме от Wed, 14 Feb 2001 15:26:38 +0300 написано:
 
 RT> В общем есть необходимость
 RT> преобразования чисел "байт" в читабельный вид.
 RT> Hапример "1048576" как 1,000,000 байт. или "1073741824" как 1,000,000,000
 RT> байт.
 
 Для начала ты несешь чушь. 1048576 байт - это 1048576 байт, а никак не
 1,000,000. Я еще поверю, что это 1 мегабайт.
 
 Для потом, еще большим бредом выглядит алгоритм. Ты его пробовал запустить на,
 скажем, 1099511627775 (1024^4-1, то есть 1023,1023,1023 по твоему алгоритму)
 байтах? А 10000 раз?
 
 sub format_bytes {
   my $bytes = shift;
   my $result = '';
   if (int($bytes/1099511627776)) {
    $result .= int($bytes/1099511627776).'`';
    $bytes %= 1099511627776;
   }
   if ($result) {
    $result .= sprintf("%04d`",int($bytes/1073741824));
   } else {
    $result .= int($bytes/1073741824).'`'
       if int($bytes/1073741824);
   }
   $bytes %= 1073741824;
   if ($result) {
    $result .= sprintf("%04d`",int($bytes/1048576));
   } else {
    $result .= int($bytes/1048576).'`'
       if int($bytes/1048576);
   }
   $bytes %= 1048576;
   if ($result) {
    $result .= sprintf("%04d`",int($bytes/1024));
   } else {
    $result .= int($bytes/1024).'`'
       if int($bytes/1024);
   }
   $bytes %= 1024;
   if ($result) {
    $result .= sprintf("%04d`",$bytes);
   } else {
    $result .= $bytes;
   }
   return $result;
 }
 
 Только с терабайтами оно жить не будет. Во всяком случае на 32-битных
 архитектурах.
 
 -- 
 Artem Chuprina                            E-mail: ran@ran.pp.ru
 Programmer                                  FIDO: 2:5020/371.32
 Memonet Ltd.                             Phone: +7-095-284-1356
 --- slrn/0.9.6.3-as (Linux)
  * Origin: AKA с подствольным плюсомётом (2:5020/371.32)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: функция   Artem Chuprina   15 Feb 2001 15:09:59 
Архивное /ru.perl/721940c68bc0d.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional