Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!ncar!noao!mcdsun!mcdchg!clyde!rds@moss.ATT.COM From: rds@moss.ATT.COM Newsgroups: comp.lang.ada Subject: unsigned integers in Ada Message-ID: <25160@clyde.ATT.COM> Date: 20 Apr 88 23:56:48 GMT Sender: nuucp@clyde.ATT.COM Lines: 21 Keywords: unsigned integer How does one implement an unsigned integer in Ada and have a maximum value equal to 2**(number of bits) in any given implementation? Is this an oversight or does Ada really limit maximum integer values to 2**(# of bits MINUS ONE)-1. More verbosely put declaring type Pointer is range 0..(2**32)-1; for Pointer'SIZE use 32; is invalid for a 32 bit integer implementation because (2**32)-1 is not in the INTEGER'RANGE -(2**31)..(2**31)-1. How can I use the leftover bit? subtype Pointer is INTEGER range 0..(2**32)-1; for Pointer'SIZE use 32; is illegal because it is not a LRM 13.1 (3) WHAT IS A FIRST NAMED SUBTYPE?? And can someone give an example? Any assistance will keep the hair in my head for another day (Ada problem).