REAL :: a=1.0 CHARACTER :: ic*11 INTEGER :: ia, j DO WHILE(a /= 0.0) PRINT *, 'Input a real (or 0.0 to stop):' READ *, a WRITE(ic,'(I11)') a; READ(ic,'(I11)') ia PRINT '(5X,I1,1X,8I1,1X,23I1)', (IBITS(ia,j,1), j=31,0,-1) END DO END