comp.lang.ada
 help / color / mirror / Atom feed
From: Petter Fryklund <petter.fryklund@atero.se>
Subject: Re: Fortran 95: How do you write code to do this?
Date: Thu, 1 Nov 2018 23:33:05 -0700 (PDT)
Date: 2018-11-01T23:33:05-07:00	[thread overview]
Message-ID: <daf8b6e6-a5e1-4a63-8102-241913eac531@googlegroups.com> (raw)
In-Reply-To: <827aada6-ddaa-450d-8458-a815d0fcf5a9@googlegroups.com>

Without shift can be:

-- Counting bits from right to left, starting with zero
generic 
  type T is mod <>; 
function Boolean_Of(Nat : T; Bit_Number : Natural) return Boolean; 

function Boolean_Of(Nat : T; Bit_Number : Natural) return Boolean is 
begin 
  return (Nat and T(2 ** Bit_Number)) = 1; 
end Boolean_Of; 

type Ten_Bits is mod 2 ** 10; 

function Boolean_Of_Ten_Bits is new Boolean_Of(Ten_Bits); 

Input : Ten_Bits := 75; 
Bool1  : Boolean  := Boolean_Of_Ten_Bits(Input, 0); -- will be True 
Bool2  : Boolean  := Boolean_Of_Ten_Bits(Input, 1); -- will be False 

Regards,
Petter

  reply	other threads:[~2018-11-02  6:33 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01  5:34 Fortran 95: How do you write code to do this? Michael_Smith@gmail.com
2018-11-01  7:13 ` Petter Fryklund
2018-11-01  7:18   ` Petter Fryklund
2018-11-01 16:35     ` Michael_Smith@gmail.com
2018-11-01 17:59       ` Jacob Sparre Andersen
2018-11-02  6:19         ` Petter Fryklund
2018-11-02  6:33           ` Petter Fryklund [this message]
2018-11-02  8:41             ` Dmitry A. Kazakov
2018-11-01  7:54   ` Simon Wright
2018-11-02  9:05 ` Anatoly Chernyshev
2018-11-02  9:14   ` gautier_niouzes
2018-11-02 14:37   ` Dennis Lee Bieber
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox