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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Dmitry Pryanishnikov                 2:464/36       02 Apr 2003  13:13:04
 To : All
 Subject : =?koi8-r?Q?Re=3A_sh_-_=D3=D4=D2=C1=CE=CE=CF=D3=D4=D8_=D3_=C1=D2?=
 -------------------------------------------------------------------------------- 
 
 .MSGID: atlantis.atlantis.dp.ua 005a4e92
 .REPLY: 2:50/551.3 3e8a6748
 .REPLYADDR: dmitry@atlantis.dp.ua
 .REPLYTO: 2:464/36@fidonet UUCP
 .RFC-Message-ID: <20030402130531.F24228-100000@atlantis.atlantis.dp.ua>
 From: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua>
 Subject: =?koi8-r?Q?Re=3A_sh_-_=D3=D4=D2=C1=CE=CE=CF=D3=D4=D8_=D3_=C1=D2?=
  =?koi8-r?Q?=C9=C6=CD=C5=D4=C9=CB=CF=CA?=
 Привет!
 
 On Wed, 2 Apr 2003, Alexander Lunyov wrote:
 
 > ALL=18894576002
 > echo "All of them      " $(($ALL/1024/1024)) $ALL
 >
 >     И нам выводится
 >
 > All of them       2047 18894576002
 >
 >     Собссно почему? Должно ж быть около 18000.
 
  В bash корректно:
 
 dmitry@atlantis$ echo "All of them      " $(($ALL/1024/1024)) $ALL
 All of them       18019 18894576002
 
  В sh нет:
 
 $ echo "All of them      " $(($ALL/1024/1024)) $ALL
 All of them       2047 18894576002
 
  Очевидно, в sh используется целочисленная арифметика меньшей разрядности,
 чем в bash, скорее всего 32 разряда, ибо sh дает
 
 $ echo $((5000000000/2))
 1073741823
 
 и не ловит целочисленного переполнения ;(
 
 Sincerely, Dmitry
 -- 
 Atlantis ISP, System Administrator
 e-mail:  dmitry@atlantis.dp.ua
 nic-hdl: LYNX-RIPE
 
 --- ifmail v.2.14.os-p7
  * Origin: Atlantis ISP (2:464/36@fidonet)
 
 

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

 Тема:    Автор:    Дата:  
 =?koi8-r?Q?Re=3A_sh_-_=D3=D4=D2=C1=CE=CE=CF=D3=D4=D8_=D3_=C1=D2?=   Dmitry Pryanishnikov   02 Apr 2003 13:13:04 
Архивное /ru.unix.bsd/1265019369.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional