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樓:匿名使用者
然,樓上是標準做法。
十進位制轉十六進位制,十進位制轉化為十六進位制怎麼算
1 十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,而十進位制的17在十六進位制中是11,以此類推,十進位制的30在十六進位制中是1e。2 輸入格式 輸入包含一個非負整數a,表示要轉換的數。0 a 2147483647。3 輸出格式,輸出這個整數的16進製表示。4 樣例輸出...
二轉十進位制,二進位制轉十進位制公式
r進位制 r為任何整數 轉換為十進位制的方法是 整數部分從小數點右往左依次按位乘以r的0次冪,r的1次冪,r的2次冪,小數部分從小數點後向右依次按位乘以r的 1次冪,r的 2次冪,r的 3次冪,將各位結果相加即可。所以 10 1101 0110 1011.11 2 2 13 2 11 2 10 2 ...
怎麼把十進位制小數轉化為二進位制怎麼把十進位制小數轉化為二進位制
採用 乘2取整,順序排列 法可以十進位制小數轉化為二進位制,現在以十進位制數0.125為例進行演示,具體操作請參照以下步驟。1 方法主要是小數部分乘以2,取整數部分依次從左往右放在小數點後,直至小數點後為0,以0.125進行演示。2 首先將小數部分0.125乘以2,得0.25,然後取整數部分0。3 ...