2010年7月13日火曜日

bash で扱える整数の上限

bash で扱える整数の上限(limit)を調べる必要があり、小さなスクリプトを書きました。最近は、32bit 版の Linux ディストリビューションでも LLONG_MAX まで扱えるようです。
# cat /etc/redhat-release 
CentOS release 4.8 (Final)
# uname -a
Linux centos 2.6.9-89.0.18.ELsmp #1 SMP Tue Dec 15 14:25:00 EST 2009 i686 i686 i386 GNU/Linux
# bash --version
GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.
# cat test_int_limit.bash 
#!/bin/bash

test_int_limit() {
        local -i i=2147483646
        echo -e "INT_MAX-1 = "$i
        let i++
        echo -e "INT_MAX   = "$i
        let i++
        echo -e "INT_MAX+1 = "$i
echo
        i=4294967294
        echo -e "ULONG_MAX-1 = "$i
        let i++
        echo -e "ULONG_MAX   = "$i
        let i++
        echo -e "ULONG_MAX+1 = "$i
echo
        i=9223372036854775806
        echo -e "LLONG_MAX-1 = "$i
        let i++
        echo -e "LLONG_MAX   = "$i
        let i++
        echo -e "LLONG_MAX+1 = "$i
echo
}

test_int_limit
# ./test_int_limit.bash 
INT_MAX-1 = 2147483646
INT_MAX   = 2147483647
INT_MAX+1 = 2147483648

ULONG_MAX-1 = 4294967294
ULONG_MAX   = 4294967295
ULONG_MAX+1 = 4294967296

LLONG_MAX-1 = 9223372036854775806
LLONG_MAX   = 9223372036854775807
LLONG_MAX+1 = -9223372036854775808

2011-12-28追記
tcsh および ksh についても調べましたので、それぞれ下記を参照ください。
ksh で扱える整数の上限
tcsh で扱える整数の上限

0 件のコメント:

コメントを投稿

人気ブログランキングへ にほんブログ村 IT技術ブログへ