⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bitio.f

📁 是个是LPC源代码
💻 F
字号:
**************************************************************************	BITIO Version 55*************************************************************************	function bitsrd(fd, ibits, n)	integer bitsrd, bitswr, gethx, puthx, fd, n, ibits(n)	character str*80*************************************************************************   Read a frame from bitstream file************************************************************************	bitsrd = 020	read(fd, 80, end=90) str80	format(a)	if (str(1:1).eq.'*') goto 20	bitsrd = gethx(str, ibits, n)90	return*************************************************************************   Write a frame to bitstream file************************************************************************	entry bitswr(fd, ibits, n)	bitswr = puthx(str, ibits, n)	write(fd,80) str(1:(n+3)/4)	return	end*************************************************************************   Read bits from hex digit stream**************************************************************************   Skip leading blanks, split hex digits into individual bits,*  terminate after getting n bits or finding non-hex character.*  Return value = number of bits in input record (which could be*  more or less than n).	function gethx(str, ibits, n)	integer gethx, puthx, n, ibits(n)	integer ib, ic, i, ii, j, k, nc	character*(*) str, hex*23	data hex /'0123456789ABCDEFabcdef '/	ic = 0	do j = 1, len(str)	    k = index(hex, str(j:j)) - 1	    if (k.lt.0 .or. (k.gt.21 .and. ic.gt.0)) goto 20	    if (k.le.21) ic = ic + 1	end do20	ib = 0	j = j - ic	nc = min((n+3)/4, ic)	do i = 0, nc-1	    k = index(hex, str(i+j:i+j)) - 1	    if (k .lt. 0 .or. k.gt.21) stop 'gethx: internal error'	    if (k .gt. 15) k = k - 6	    do ii = 1 + max(0, 4*(nc-i)-n), 4	        ib = ib + 1	        ibits(ib) = and(ishft(k, ii-4), 1)	    end do	end do90	gethx = ib	if (ic .gt. nc) gethx = 4*ic	return*************************************************************************   Write bits to hex digit stream************************************************************************	entry puthx(str, ibits, n)	ib = 0	str = ' '	nc = (n+3) / 4	do ic = 1, min(len(str), nc)	    k = 0	    do j = 1, min(n-4*(nc-ic), 4)	        ib = ib + 1	        k = or(ishft(k,1), and(ibits(ib),1))	    end do	    str(ic:ic) = hex(k+1:k+1)	end do	puthx = ib	return	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -