|
On 25 Jan 2013 03:05, whatt sson wrote:
<<SNIP>>in EBCDIC a byte representing a
character "1" is the same as a byte representing a zoned numeric 1,
which is hex F1. So MOVE works coincidentally, with alpha fields and
zoned numeric fields as long as the number is positive. The "F" in F1
indicates it's "unsigned", a "C" indicates it's positive and "D"
indicates it's negative. The "sign" in a zoned field is represented
in the last byte (least significant). That's why you get the letter
"O", which is hex D6, representing the digit 6 in a negative number.
FWiW: While that effectively describes the Binary Coded Decimal (BCD)
for Zoned Decimal on the IBM Mainframe, the midrange chose to eliminate
the concept of unsigned digits; choosing instead to have its preferred
_positive_ as the hex digit "F" and its preferred _negative_ as the hex
digit "D". The only consequence that I am aware of, is that the
one-digit decimal number of zero is a /positive/ value represented by
x'F0'. And while the 0xD and 0xF are preferred signs, all of the hex
digits 0xA to 0xF are valid representation for a sign.
--
Regards, Chuck
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.