program f90_10to16 implicit none integer::num character(len=2)::answer integer::i do i=0,255 num=i answer=C10to16(num) write(6,*) i,answer end do stop contains character(len=2) function C10to16(num) integer,intent(in)::num integer,parameter::n=10 integer::r(1:n) integer::i,m integer::numd=16 character(len=1)::snum(1:n) character(len=200)::ans integer::num0,qq num0=num do i=1,n qq=num0/numd r(i)=num0-numd*qq if(qq==0)exit num0=qq end do m=i do i=m,1,-1 if(r(i)==10)snum(i)='A' if(r(i)==11)snum(i)='B' if(r(i)==12)snum(i)='C' if(r(i)==13)snum(i)='D' if(r(i)==14)snum(i)='E' if(r(i)==15)snum(i)='F' if(r(i)<=9)then write(snum(i),'(i1.1)') r(i) end if end do ans='' do i=m,1,-1 ans=trim(adjustl(ans))//snum(i) end do if(len_trim(ans)==1)ans='0'//trim(ans) C10to16=ans end function C10to16 end program f90_10to16