|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1265019369.html, оценка из 5, голосов 10
|