The reason for this is that a byte is the smallest addressable amount of memory, so a boolean variable occupies a full-byte. You can create an array of 8 booleans that occupies a single byte using pragma Pack. Try: pragma Pack(arr_type); ---------------------------------------------------------------------------- ------ Martin C. Carlisle, PhD Associate Professor and Advisor-in-Charge Department of Computer Science United States Air Force Academy -----Original Message----- From: [log in to unmask] [mailto:[log in to unmask]] Sent: Thursday, November 21, 2002 2:44 AM To: [log in to unmask] Subject: doubt Hello sir, i had a small doubt regarding the size occupied by the variable of a boolean type. x : boolean; begin put(boolean'size); -- it is giving 1 bit put(x'size); -- it is returning 8 bits end why is it so? actuallly i want to type cast a array of boolean type into an integer value. type arr_type is array(integer range 1..2) of boolean; function uncheck is new unchecked_conversion(arr_type,integer); a(1) := TRUE a(2) := TRUE when converted, the value i am getting is 257 instead of 3 can u please give me some suggestion regarding this Thanks & Regards, D.V.MAHIDHAR,