FORTRAN如何把十進位制檔案轉化為二進位制檔案

2022-05-12 13:40:16 字數 2021 閱讀 1879

1樓:百度網友

如果是end of file encountered的錯誤,我猜是樓主的morlet.txt資料不夠,應該有1296行資料,樓主可以檢查一下是不是不夠。

另外還有一個問題,樓主把資料按二進位制輸出時,open(2,file='d:\morlet.dat',form ='binary'

&,access='direct',recl=1)這裡recl=1可能不行,應該是4吧,因為一個實數預設是4位元組的。

2樓:糖糖寳寳

詳細步驟:

1、open(1,file="1.txt")do i=1,m

do j=1,n

read(1,*)x(i,j)

enddo

enddo

close(1)

open(2,file="1.dat",form=binary)write(2)((x(i,j),i=1,m),j=1,n)close(2)

這樣就實現了一個從檔案1.txt讀取並寫入1.dat的功能,。

2、轉格式並不是fortran的功能

fortran主要用於計算,資料只是一個讀寫過程;

3、關鍵是轉出來寫成什麼樣的格式,哪一層迴圈在內部哪一層在外部,迴圈巢狀順序和讀取順序一定要一致,否則讀出來就亂了。

大神。怎麼用fortran將10進位制.dat檔案轉化成二進位制.grd檔案?

3樓:你猜我猜哇擦猜

只要你知道txt檔案中資料的格式和grd檔案中資料的格式,是可以轉換的。

read(2) h(it) 是讀無格式檔案,也就是所謂的讀取二進位制的時候用的。

open(2,file='xifeng.txt',form='formatted')這一句中檔案2是文字檔案,相互衝突,自然不行。

同理,write(1,*) h(it)是有格式輸出,而檔案1是二進位制檔案,一樣會報錯。

4樓:百度網友

program grads

implicit none

integer,parameter::m=20,n=16integer i,j

real h(m,n)

open(1,file='d:\grads\hi.dat')open(12,file='trans.grd',form='unformatted')

rewind(1)

read(1,*)((h(i,j),i=1,m),j=1,n)rewind(12)

write(12,*)((h(i,j),i=1,m),j=1,n)close(1)

close(12)end

fortran語言,編寫程式,把10進位制資料轉換為2進位制,所得的2進位制資料用一個字串表示 5

5樓:永恆

fortran77程式,10進位制整數轉2進位制:

character*32 ch

call d2b(987654321,ch)write(*,*) ch

stop

endsubroutine d2b(x,c)character*1 c

dimension c(32)

integer i,k,x

k=32

10 m=mod(x,2)

x=x/2

if (m.eq.1) then

c(k)='1'

else

c(k)='0'

endif

k=k-1

if (x.gt.0) goto 10

do 20 i=1,k

c(i)='0'

20 continue

returnend

用fortran語言把十進位制轉換為二進位制

6樓:天河流紋石

write( * , '(b)' ) 3

這樣就會輸出 11(二進位制)

7樓:匿名使用者

然,樓上是標準做法。