|
Hi All,
I've been tasked with converting a character representation of a binary number to it's decimal equivalent and vice versa. For example I have a series of nine characters '001011101' and I'm suppose to get the AS/400 to come up with 93. Or I have the decimal number 321 and I need to get to '101000001'
I've checked the archives and all past information deals with the conversion of a true binary number to decimal, not this character representation of one....
Is it possible to just move this string into a binary field and then to a regular numeric field?
Help...
Thanks,
D char2dec pr 15p 0
D binstring 256 const D test0 c '0'
D test1 c '1'
D test2 c '11111111'
D test4 c '010101010101111010101010111101' /free
// do the conversion
somenum = char2dec(test0);
somenum = char2dec(test1);
somenum = char2dec(test2);
somenum = char2dec('1111 1111');
somenum = char2dec(test4); eval *inlr = *on;
/end-free * Convert a bit string into its decimal number
P char2dec b
D char2dec pi 15p 0
D binstring 256 const D max c const(256)
D i s 10i 0
D multiplier s 15p 0 inz(1)
D bindigit s 1
D result s 15p 0 inz
D resultc s 15 /free
for i = max downto 1;
bindigit = %subst(binstring:i:1);
select;
when bindigit = '1';
result = result + multiplier;
multiplier = multiplier * 2;
when bindigit = '0';
multiplier = multiplier * 2;
endsl;
endfor; // display the results
if DEBUG = 1;
resultc = %char(result);
dsply resultc;
endif; /end-free
P char2dec eAs 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.