25.06.2013 Views

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

Il Linguaggio Fortran 90/95

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.12 Procedure intrinseche 269<br />

! ...<br />

WRITE(*,10) "N.ro di kind = ",KIND(i1)," ---> N.ro di bit = ",BIT_SIZE(i1)<br />

WRITE(*,10) "N.ro di kind = ",KIND(i2)," ---> N.ro di bit = ",BIT_SIZE(i2)<br />

WRITE(*,10) "N.ro di kind = ",KIND(i3)," ---> N.ro di bit = ",BIT_SIZE(i3)<br />

10 FORMAT(T1,A15,I2,A19,I3)<br />

Eseguito su un PC con processore Pentium il frammento precedente produce il seguente output:<br />

N.ro di kind = 1 ---> N.ro di bit = 8<br />

N.ro di kind = 2 ---> N.ro di bit = 16<br />

N.ro di kind = 4 ---> N.ro di bit = 32<br />

BTEST(I,POS)<br />

Fornisce il valore logico .TRUE. se il bit avente posizione POS nella rappresentazione di I ha<br />

valore 1, altrimenti fornisce il valore .FALSE. Entrambi gli argomenti sono di tipo INTEGER, in<br />

particolare deve risultare 0≤POS≤BIT_SIZE(I).<br />

Una interessante applicazione della funzione intrinseca BTEST è riportata di seguito. <strong>Il</strong><br />

seguente programma, infatti, fa uso della funzione BTEST per ”costruire” la rappresentazione<br />

binaria di un valore intero di modo che essa possa essere riprodotta a stampa evitando, in tal<br />

modo, di ricorrere al descrittore di formato B.<br />

PROGRAM Integer_Representation<br />

!<br />

! Scopo: stampare un valore intero secondo la rappresentazione<br />

! binaria, senza fare uso del descrittore di formato "B"<br />

!<br />

INTEGER :: num ! intero da stampare<br />

INTEGER :: j ! variabile contatore<br />

INTEGER, PARAMETER :: size=32<br />

CHARACTER(LEN=size) :: num_in_bits ! rappresentazione binaria di num<br />

!<br />

PRINT*, " Introdurre un intero: "<br />

READ(*,*) num<br />

num_in_bits = " "<br />

DO j=0,size-1<br />

IF (BTEST(num,j)) THEN<br />

num_in_bits(size-j:size-j) = "1"<br />

ELSE<br />

num_in_bits(size-j:size-j) = "0"<br />

END IF<br />

END DO<br />

PRINT*, "La rappresentazione binaria di ", num, "e’: "<br />

PRINT*, num_in_bits<br />

END PROGRAM Integer_representation

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!