home *** CD-ROM | disk | FTP | other *** search
- ############################################################################
- #
- # File: unsigned.icn
- #
- # Subject: Procedure to put bits unsigned integer
- #
- # Author: Robert J. Alexander
- #
- # Date: April 2, 1990
- #
- ###########################################################################
- #
- # unsigned() -- Puts raw bits of characters of string s into an
- # integer. The value is taken as unsigned.
- #
- # If large integers are supported, this routine will work for integers
- # of arbitrary size.
- #
- # If large integers are not supported, the following are true:
- #
- # If the size of s is the same as or greater than the size of an
- # integer in the Icon implementation, the result will be negative or
- # positive depending on the value of the integer's sign bit.
- #
- # If the size of s is less than the size of an integer, the bytes are
- # put into the low order part of the integer, with the remaining high
- # order bytes filled with zero. If the string is too large, the most
- # significant bytes will be lost.
- #
- # This procedure is normally used for processing of binary data read
- # from a file.
- #
-
- procedure unsigned(s)
- local i
- i := 0
- every i := ior(ord(!s),ishift(i,8))
- return i
- end
-