Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Determining the length of "long"?



On Sep 12,  9:42am, Dominik Vogt wrote:
}
} On Thu, Sep 11, 2014 at 09:39:01PM -0700, Bart Schaefer wrote:
} > if (( ${#:-"$(( [#2] (1<<31)))"} > ${#:-"$(( [#2] (1<<63)))"} ))
} > then print "zsh integer type is 32 bits"
} > elif (( ${#:-"$(( [#2] (1<<63)))"} > ${#:-"$(( [#2] (1<<64)))"} ))
} > then print "zsh integer type is 64 bits"
} > else print "zsh integer type is more than 64 bits"
} > fi
} 
} Hm, I'm not really sure that works reliably because the shift
} amount may be truncated before it is used.  I.e. on s390 "1 << 32"
} and "1 << 64" and "1 << 0" are all the same.

That probably means that zsh uses a 32 bit integer type on s390.
There is a reason the shift in my "if" above is 1<<31 not 32.



Messages sorted by: Reverse Date, Date, Thread, Author