IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Advantages of COMP over COMP-3


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Sharan

New User


Joined: 22 Dec 2003
Posts: 6
Location: Banaglore

PostPosted: Mon Dec 22, 2003 9:19 pm
Reply with quote

Hi,

I understand that COMP-3 data occupies lesser space than a COMP variable. Assuming it this way why is that people prefer COMP over COMP-3. Is there any specific reasons that the COMP data have over COMP-3 variables. It would be great if some of you can give me an answer to the same.
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Tue Dec 23, 2003 4:51 am
Reply with quote

Hi Sharan,

There are various flavors of COMP, e.g. COMP-4/5, and compiler options that change it's execution characteristics. Check your compiler' manual for details.

Whoever told you that COMP-3 uses less storage than COMP was technically correct, but misleading. For numbers 0 thru 9 it's correct: COMP-3 requires 1 byte, COMP requires 2. However, a 2 byte signed COMP field can house numbers to +/-61439, while 2 bytes of COMP-3 can accommodate numbers limited to +/-999.

Another reason for choosing COMP is that it uses register to register arithmetic; a faster method than decimal arithmetic.

Regards, Jack.
Back to top
View user's profile Send private message
prasanth_thavva

New User


Joined: 28 Jul 2005
Posts: 86
Location: Chennai

PostPosted: Thu Sep 08, 2005 10:49 am
Reply with quote

For numbers
Quote:
0 thru 9 it's correct
: COMP-3 requires 1 byte, COMP requires 2. However, a 2 byte signed COMP field can house numbers to +/-61439, while 2 bytes of COMP-3 can accommodate numbers limited to +/-999.

Quote:
can u explain me breifly ?

bye

how can a comp-3 occupies
0-9 comp-3 occupies 1 byte for signed it can house -/+999
Back to top
View user's profile Send private message
amalli

New User


Joined: 06 Sep 2005
Posts: 17

PostPosted: Thu Sep 08, 2005 12:18 pm
Reply with quote

Comp3 is Packed decimal Format
Comp i Binary Format.


Which is Fastest of comp or comp3?
Back to top
View user's profile Send private message
die7nadal

Active User


Joined: 23 Mar 2005
Posts: 156

PostPosted: Fri Sep 09, 2005 1:35 am
Reply with quote

mmwife,
Quote:
However, a 2 byte signed COMP field can house numbers to +/-61439

If I understood u correctly, according to my calculations I can accomodate +/- 9999 for COMP items and +32767 to -32768 for COMP-5. COMP-3 showed +/-999 as u have said. Let me know If I am missing something.
Back to top
View user's profile Send private message
nitin_agr

New User


Joined: 06 Sep 2005
Posts: 28
Location: Minneapolis US

PostPosted: Fri Sep 09, 2005 2:07 am
Reply with quote

Hi Friends;

Here I want to contribute a few lines in this discussion, those might helpful to understand it very clearly.

BINARY
Specified for binary data items. Such items have a decimal equivalent
consisting of the decimal digits 0 through 9, plus a sign. Negative numbers
are represented as the two's complement of the positive number with the same absolute value. The amount of storage occupied by a binary item depends on the number of decimal digits defined in its PICTURE clause:
1 through 4 2 bytes (halfword)
5 through 9 4 bytes (fullword)
10 through 18 8 bytes (doubleword)

The operational sign for ?big-endian? binary data (such as OS/390 and VM) is contained in the left most bit of the binary data. The operational sign for ?little-endian? binary data is contained in the left most bit of the right most byte of the binary data.

PACKED-DECIMAL
Specified for internal decimal items. Such an item appears in storage in
packed decimal format. There are 2 digits for each character position, except for the trailing character position, which is occupied by the low-order digit and the sign. Such an item can contain any of the digits 0 through 9, plus a sign, representing a value not exceeding 18 decimal digits.

The sign representation uses the same bit configuration as the 4-bit sign
representation in zoned decimal fields.

Following is the range I found in a IBM COBOL Programming manual

Picture Storage representation Numeric values

S9(1) through S9(4) Binary half-word (2 bytes) -32768 through +32767
S9(5) through S9(9) Binary full-word (4 bytes) -2,147,483,648 through
+2,147,483,647
S9(10) through S9(18) Binary double-word (8bytes) -9,223,372,036,854,775,808 through +9.223,372,036,854,775,807

9(1) through 9(4) Binary half-word (2 bytes) 0 through 65535
9(5) through 9(9) Binary full-word (4 bytes) 0 through 4,294,967,295
9(10) through 9(18) Binary double-word (8bytes) 0 through 18,446,744,073,709,551,615
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Sat Sep 10, 2005 9:51 pm
Reply with quote

Nadal,
Quote:
+32767 to -32768 for COMP-5.

You're correct. Don't know what I did there.


Quote:
COMP-3 showed +/-999 as u have said.

Using TRUNC(BIN) as a compiler option will allow data values of +32767 to -32768 as above regardless of the PIC 9s.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts COBOL - Move S9(11)v9(7) COMP-3 to -(... COBOL Programming 5
No new posts Converting ASCII values to COMP-3 (ZD... JCL & VSAM 2
No new posts Interviewers are surprised with my an... Mainframe Interview Questions 6
No new posts Cobol COMP-2 fields getting scrambled... Java & MQSeries 6
No new posts convert alphanumeric PIC X(02) to hex... COBOL Programming 3
Search our Forums:

Back to Top