Dưới đây là một chút nỗ lực khác nhau tại giải đáp thắc mắc của bạn.
PIC S9 (15) V9 (3) COMP-3 trông như thế này trong file:
00 00 00 00 00 00 00 00 00 0F
Nếu giá trị là -4.568.248.323, nó sẽ là:
00 00 00 00 04 56 82 48 32 3D
Điều này không giúp bạn, nhưng có thể giúp đỡ người khác. Unpacked giá trị trước đó sẽ như thế nào:
F0 F0 F0 F0 F0 F0 F0 F0 F0 F4 F5 F6 F8 F2 F4 F8 F3 F2 D3 (or F3 as the last byte, therefore losing the sign)
Trường này có 15 (trên thực tế 16) chữ số trước dấu thập phân và 3 sau đó.
Mặc dù nó chỉ yêu cầu 18 chữ số (15 + 3), nó được 19 để làm cho nó một lĩnh vực chiều dài thậm chí với dấu (một chữ số được thêm vào phía trước để làm cho nó dài 10 byte trên tệp). Thực hành tốt nhất là luôn luôn làm cho các lĩnh vực đóng gói một chiều dài lẻ để tránh nhầm lẫn này.
** Chữ cái cuối cùng biểu thị dấu, C & F là số dương, D là số âm. Đối với chương trình của bạn, hãy kiểm tra âm tính (D) và nếu không, hãy coi là dương tính.
** Chữ 'V' là dấu thập phân ngụ ý. nó không tồn tại trên tập tin, nhưng COBOL biết rằng nó ở đó để làm tròn và như vậy. Bạn cần phải lập trình tài khoản cho nó. Không có gì trong tệp để giúp bạn xác định vị trí của nó hoặc nếu nó tồn tại.
Hai trường khác đã là độ dài lẻ, vì vậy khi được đóng gói, với dấu, chúng có thể được lưu trữ trong một khoảng thời gian dài.
Bất kỳ câu hỏi nào khác, chỉnh sửa câu hỏi của bạn hoặc hỏi trong nhận xét và ai đó sẽ cố gắng trả lời chúng cho bạn.