亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bigio.c

?? 隨機數算法
?? C
字號:
/*  Some basic input output routines to make use of FLOAT variables.  */#include <stdio.h>#include "bigfloat.h"char digitof( FLOAT *frac);double logbase10of2 = 0.30102999566398119521;/*  The purpose of this routine is to convert an ascii string to FLOAT.	Input format makes the exponent important and the mantissa	secondary, as argued by an old professor of mine long ago.		Format is:  Esxxxxxxxxx\tsxxxxx----.xxxxx----		where initial E can be lower case but must be present.	s is either + or - or null (not space!)	\t is space or tab	exponent can have as many digits as you want but more than 9 is useless	mantissa can have decimal point anywhere.	Garbage characters ignored, but if in mantissa assumed to be decimal point.		returns 0 if can't parse number		     1 if it can.*/int ascii_to_float( char *instring, FLOAT *outnum){	int	signflag, exponent;	char	nextchar;	FLOAT	digit, ten, scale;	/*  look for start of number (E or e)  */	while ( nextchar = *instring++)		if ( nextchar == 'e' || nextchar == 'E') break;	if ( !nextchar ) return 0;/*  parse exponent.  If no number after exponent return error.	If blank after the E, exponent assumed 0.*/	signflag = 0;	null( outnum);	nextchar = *instring++;	if ( nextchar == '-')	{		signflag = -1;		nextchar = *instring++;	}	if ( nextchar == '+' ) nextchar = *instring++;	exponent = 0;expnt:	while ( nextchar >= '0' && nextchar <= '9')	{		exponent *= 10;		exponent += nextchar & 0xf;		nextchar = *instring++;	}	if ( !nextchar) return 0;/*  ignore garbage characters and keep parsing exponent until death  */	if ( nextchar != ' ' && nextchar != '\t' )	{		nextchar = *instring++;		goto expnt;	}	if ( signflag) exponent = -exponent;/*  now parse mantissa	Decimal point can be anywhere.  first check sign, then add in each digit*/	while ( nextchar == ' ' || nextchar == '\t')	{		nextchar = *instring++;		if( !nextchar) return 0;	}	null( &ten);	ten.expnt = 4;	ten.mntsa.e[MS_MNTSA] = 0x50000000;	signflag = 0;	if( nextchar == '-' )	{		signflag = -1;		nextchar = *instring++;	}	if ( nextchar == '+' ) nextchar = *instring++;	while ( nextchar >= '0' && nextchar <= '9')	{		multiply( outnum, &ten, outnum);		null ( &digit);		digit.expnt = 31;		digit.mntsa.e[MS_MNTSA] = nextchar & 0xf;		normal ( &digit);		add( &digit, outnum, outnum);		nextchar = *instring++;	}	if ( !nextchar ) goto scale;/*  now parse digits after the decimal point.  scale keeps track of how many	digits we've collected.  You'd have to have a lot of digits to underflow!!*/	nextchar = *instring++;	null( &scale);	scale.expnt = 1;	scale.mntsa.e[MS_MNTSA] = 0x40000000;	divide( &scale, &ten, &scale);	while (nextchar)	{		if( nextchar >= '0' && nextchar <= '9')		{			null ( &digit);			digit.expnt = 31;			digit.mntsa.e[MS_MNTSA] = nextchar & 0xf;			normal ( &digit);			multiply( &digit, &scale, &digit);			add( &digit, outnum, outnum);			divide( &scale, &ten, &scale);		}		nextchar = *instring++;	}/*  combine exponent with mantissa and convert powers of 10 to	powers of 2.*/scale:	if ( exponent)	{		if ( exponent < 0)		{			while (exponent)			{				divide( outnum, &ten, outnum);				exponent++;			}		}		else		{			while ( exponent )			{				multiply( outnum, &ten, outnum);				exponent--;			}		}	}	if ( signflag ) negate( outnum);	return 1;}/*  convert  FLOAT to human ascii.  Output format is:	Esxxxxxxxxx\bsx.xxxxx-----	where s is + or -, \b is a space	Enter with pointer to float and pointer to result space.	Maximum length of string depends on MNTSA_SIZE in bigfloat.h	256 bits ~ 77 digits, so 100 bytes is good.  (cut off set at 80)	Scale room accordingly.  	Conversion based on Knuth, "Radix Conversion" in Seminumerical*/void float_to_ascii( FLOAT *numbr, char *outstring){	long exponent, exp10;	FLOAT ten, fraction, scale;	unsigned long mask, lastbit;	int signflag, i;	char  *digit, nxtdgt;	double xpnt;	/*  Make this a macro or subroutine?  */	null( &ten);	ten.expnt = 4;	ten.mntsa.e[MS_MNTSA] = 0x50000000;/*  first character out is always 'E'  */	digit = outstring;	*digit++ = 'E';/*  if number doesn't need an exponent, skip exponent phase  */	exponent = numbr->expnt;	copy( numbr, &fraction);	if( (exponent < -3) || (exponent > 3))	{		if ( exponent < -3)		{			xpnt = exponent;			xpnt *= -logbase10of2;			*digit++ = '-';			signflag = -1;		}		else   /*  positive exponent  */		{			xpnt = exponent;			xpnt *= logbase10of2;			*digit++ = '+';			signflag = 0;		}		exp10 = xpnt + 0.5;/*  find msb in exp10 by brute force  */		lastbit = 0x40000000;		while  (! (lastbit & exp10) && lastbit) lastbit >>= 1;		one( &scale);/*  compute scale = 10^exp10, in binary  */ 	 	for (mask=1;  mask < lastbit; mask <<= 1 )	 	{	 		if (mask & exp10) multiply( &scale, &ten, &scale);	 		multiply( &ten, &ten, &ten);    // square power of 10	 	}	 	multiply( &scale, &ten, &scale);	 	if ( signflag) multiply( &scale, numbr, &fraction);	 	else divide( numbr, &scale, &fraction);	  /*  now we have number converted to fraction in range .125+ to 8- 	We also know the binary representation of the decimal 	exponent, so let's output the decimal representation. */	 	for( i=0; i<9; i++) digit[i] = '0';	 	i = 8;	 	while( i)	 	{	 		digit[i] |= exp10 % 10;	 		exp10 /= 10;	 		if( !exp10) break;	 		i--;	 	}	 	digit += 9;	 } /*  end of exponent conversion  */	 /*  Make this a macro or subroutine?  */	null( &ten);	ten.expnt = 4;	ten.mntsa.e[MS_MNTSA] = 0x50000000;/*	 now output fractional part.	Make positive, then spit out 1 digit of fraction at a time.*/	*digit++ = ' ';	if( fraction.mntsa.e[MS_MNTSA] & SIGN_BIT)	{		negate( &fraction);		*digit++ = '-';	}	else *digit++ = '+';	/*  spit out first digit then decimal point  */	*digit++ = digitof( &fraction);	*digit++ = '.';/*  multiply result by 10 and output next decimal digit.  	go till number is gone.*/	i=0;	while( !iszero( &fraction) & i<80)	{		multiply( &fraction, &ten, &fraction);		*digit++ = digitof( &fraction);		i++;	}	*digit++ = 0;}/*  this subroutine takes in a FLOAT ( > 0 ) and computes	the integer part, chopping it off and returning a char.	Output is normalized back to a fraction.*/char digitof( FLOAT *frac){	char num;	unsigned long mask;	long xp2 = 31 - frac->expnt;		if ( xp2 > 30 ) return '0';	mask = ~0 << xp2;	num = (( mask & frac->mntsa.e[MS_MNTSA]) >> xp2);	frac->mntsa.e[MS_MNTSA] &= ~mask;	normal( frac);	return num | '0';}/*  general test routine.  Add more as you need 'em.	Make inline too.		check if FLOAT is zero.  returns 1 if so, 0 if nonzero	all normalized numbers represented.  No soft cut off.	With 32 bit exponent, it's insane to have soft 0.*/int iszero( FLOAT *x){	if( x->mntsa.e[MS_MNTSA] ) return 0;	return 1;}		/*  print a text string and float.  For debugging mostly.  */void printfloat( char *string, FLOAT *numbr){	char	numstrng[128];		printf("%s\n", string);	float_to_ascii( numbr, numstrng);	printf("%s\n", numstrng);}/*  convert bigfloat to double.  If exponent too large,    returns a nan.*/double bigdown( FLOAT *big){  double down;  long expnt;/*  first convert 64 bits of fraction  */  down = big->mntsa.d[MS_MNTSAd];  expnt = 63 - big->expnt;/*  multiply or divide by 2 to get correct result  */  while( expnt > 0)  {    down /= 2.0;    expnt--;  }  while( expnt < 0)  {    down *= 2.0;    expnt++;  }  return down;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清成人在线| 日本一二三不卡| 日韩午夜激情电影| 亚洲欧美偷拍三级| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产三级在线| 91蜜桃在线观看| 日本一区二区三区在线观看| 亚洲精品成人a在线观看| 欧美电影在哪看比较好| 国产麻豆91精品| 久久久精品免费观看| 久久综合中文字幕| jlzzjlzz欧美大全| 日本不卡一区二区| 国产精品久久久久天堂| 7777精品伊人久久久大香线蕉最新版 | 婷婷开心激情综合| 国产精品一色哟哟哟| 日韩亚洲欧美一区二区三区| 亚洲欧洲精品天堂一级| 国产自产高清不卡| 久久丝袜美腿综合| 国产久卡久卡久卡久卡视频精品| 欧美精品粉嫩高潮一区二区| 亚洲天堂2016| 成人av在线影院| 精品久久久久久综合日本欧美| 麻豆精品在线看| 日本大香伊一区二区三区| 亚洲精品中文字幕在线观看| 日本道精品一区二区三区| 日韩国产一二三区| 亚洲欧美aⅴ...| 在线欧美日韩国产| 亚洲国产精品ⅴa在线观看| 99久久婷婷国产综合精品电影| 日韩久久一区二区| 欧美午夜不卡视频| 午夜国产不卡在线观看视频| 国产精品伦一区| 精品国产伦一区二区三区免费| 欧美性色aⅴ视频一区日韩精品| 高清不卡在线观看av| 日韩二区三区四区| 一区二区三区在线视频观看| 中文字幕欧美日韩一区| 精品久久久久久久人人人人传媒| 在线免费观看一区| 91在线精品一区二区三区| 国产一区二区不卡在线| 麻豆极品一区二区三区| 日韩高清一区二区| 欧美日韩中文精品| 亚洲成人av一区二区| 蜜臀av性久久久久蜜臀aⅴ| 国产一区二区三区黄视频| 99精品黄色片免费大全| 欧美一区二区三区四区在线观看| 久久综合成人精品亚洲另类欧美 | 午夜精品久久久久久久久| 国产精品久久久久久久久图文区 | 国产欧美一区二区精品秋霞影院| 日韩精品在线一区| 精品人伦一区二区色婷婷| 精品国产乱码久久久久久1区2区| 久久久三级国产网站| 亚洲国产精品传媒在线观看| 国产日本一区二区| 国产精品久久久久久一区二区三区| 欧美精品一区视频| 久久久精品免费免费| 中文字幕一区二区三区视频| 亚洲国产人成综合网站| 国产一区二区三区香蕉| 国产精品白丝av| 国产一区二区三区黄视频| 成人美女在线观看| 欧美日韩中字一区| 国产精品女同互慰在线看| 亚洲成人自拍网| 韩国v欧美v亚洲v日本v| 91色九色蝌蚪| 精品国产乱码久久久久久蜜臀 | 91黄色在线观看| 久久久亚洲高清| 日韩av高清在线观看| 99久久久久免费精品国产| 日韩欧美激情在线| 亚洲黄网站在线观看| 国产一区二区三区四区五区美女| 欧美在线色视频| 国产精品免费免费| 久久国产尿小便嘘嘘尿| 欧洲视频一区二区| 国产拍欧美日韩视频二区| 免费观看在线色综合| 欧美日精品一区视频| 亚洲老妇xxxxxx| 日本道免费精品一区二区三区| 中文无字幕一区二区三区| 高清日韩电视剧大全免费| 国产精品色哟哟| 91免费国产在线| 亚洲婷婷国产精品电影人久久| 国产中文一区二区三区| 国产精品每日更新在线播放网址| 99久久国产综合精品女不卡| 亚洲一卡二卡三卡四卡无卡久久| 日本成人超碰在线观看| 欧美丰满少妇xxxbbb| 婷婷综合久久一区二区三区| 91麻豆免费看| 伊人婷婷欧美激情| 一本到不卡精品视频在线观看| 国产精品久久久久久久久免费桃花 | 蜜桃久久av一区| 精品99一区二区三区| 国产精品综合二区| 国产亲近乱来精品视频| 国产一区二区三区免费在线观看| 久久蜜桃av一区精品变态类天堂 | 2020国产精品| 色综合中文字幕国产| 日韩欧美国产综合在线一区二区三区 | 日韩综合在线视频| 欧美一卡二卡三卡四卡| 国产一区二区三区免费在线观看| 91麻豆精品国产自产在线| 国产在线乱码一区二区三区| 亚洲视频狠狠干| av在线不卡观看免费观看| 亚洲六月丁香色婷婷综合久久 | 美女性感视频久久| 久久九九久精品国产免费直播| 成人app网站| 久久精品99国产精品日本| 亚洲黄色免费电影| 欧美一区二区三区的| 色综合久久久久综合| 国产黑丝在线一区二区三区| 久久久久久久网| 欧美一级午夜免费电影| 99精品国产一区二区三区不卡| 日韩vs国产vs欧美| 精品国产免费人成在线观看| 色国产综合视频| 丁香婷婷深情五月亚洲| 国产在线不卡视频| 久久国产婷婷国产香蕉| 麻豆精品国产91久久久久久| 水野朝阳av一区二区三区| 午夜电影久久久| 亚洲成人7777| 视频在线观看一区二区三区| 亚洲1区2区3区视频| 亚洲国产精品天堂| 亚洲午夜在线视频| 亚洲女同ⅹxx女同tv| 国产欧美日韩不卡免费| 国产精品家庭影院| 亚洲精品写真福利| 亚洲最大色网站| 视频一区二区中文字幕| 久久精品国产一区二区三| 麻豆国产欧美日韩综合精品二区 | 亚洲欧洲日韩av| 欧美日韩国产综合一区二区三区| 日本高清免费不卡视频| 欧美色综合影院| 欧美美女视频在线观看| 日韩一区二区三区视频| 久久众筹精品私拍模特| 国产精品天干天干在线综合| 最新国产成人在线观看| 午夜精品久久久久久久久| 毛片av一区二区| 91免费观看国产| 日韩欧美国产电影| 久久综合九色综合97婷婷| 亚洲久草在线视频| 美国毛片一区二区三区| 99re热这里只有精品视频| 91麻豆精品国产| 国产精品成人在线观看| 麻豆久久久久久| 色婷婷久久综合| 欧美乱妇15p| 亚洲品质自拍视频| 久久精品国产一区二区三| 成人激情午夜影院| 久久综合狠狠综合久久综合88| 亚洲福利一区二区三区| 国产成人精品免费看| 日韩免费在线观看| 国产亚洲欧美一区在线观看| 奇米影视一区二区三区小说| 欧洲一区二区三区免费视频| 欧美一级久久久| 青青草97国产精品免费观看|