| 
 | 
In C, logically shifting bits left or right is easy. In MI, it can be done with 
CPYBTLLS or CPYBTRLS. Even in REXX, character/hex/binary conversions can make 
it easy.
Other than by multiplying/dividing binary values by powers of two or using an 
ugly series of bit-level builtins (setbts, clrbts, tstbts, and others), is 
there any good way in other languages?
As a bonus for reading this, I thought I'd include a bit of V5R3 ILE CL that 
shows a way to check the "length" of a *CHAR variable. Pretty cool stuff now 
available in CL:
pgm
   dcl        &str          *char       10     value( 'abc' )
   dcl        &stri         *char       11
   dcl        &len          *int               value( 0 )
   dcl        &x00          *char        1     value( x'00' )
   chgvar   &stri    ( &str *cat &x00 )
   callprc  'triml'  ( +
                       &stri  +
                       ( ' '   *byval ) +
                     ) +
               rtnval( &len )
dmpclpgm
   return
endpgm
Create that as a module. Then use CRTPGM with BNDDIR(QC2LE) to find the 'triml' 
procedure. Procedure 'triml' takes a null-terminated string and returns the 
length after checking for the trailing character that is specified in the 
second parm. In this case, trailing blanks are counted off; but it could be any 
character.
Tom Liotta
-- 
Tom Liotta
The PowerTech Group, Inc.
19426 68th Avenue South
Kent, WA 98032
Phone  253-872-7788 x313
Fax    253-872-7904
http://www.powertech.com
__________________________________________________________________
Switch to Netscape Internet Service.
As low as $9.95 a month -- Sign up today at http://isp.netscape.com/register
Netscape. Just the Net You Need.
New! Netscape Toolbar for Internet Explorer
Search from anywhere on the Web and block those annoying pop-ups.
Download now at http://channels.netscape.com/ns/search/install.jsp
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.