예제 #1
0
char *Int2Bin(uint16_t num, byte bits)
{
	char *strBin = (char*)malloc(bits+1);
	for(byte i = 0, m = Iexp(2, bits-1); m > 0; m /= 2, i++)
		strBin[i] = (num & m) ? '1' : '0';
	strBin[bits] = 0;
	return strBin;
}
예제 #2
0
파일: wft.c 프로젝트: lp56/code
double complex p(double k[3], int x, int y, int z){
	if(x%2==1 && y%2==1 && z%2==1)
		return -2*sqrt(2)*cos(k[0])*cos(k[1])*cos(k[2])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(x%2==1 && y%2 ==1)
		return 2*cos(k[0])*cos(k[1])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(x%2==1 && z%2==1)
		return 2*cos(k[0])*cos(k[2])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(y%2==1 && z%2==1)
		return 2*cos(k[1])*cos(k[2])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(x%2==1)
		return sqrt(2)*cos(k[0])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(y%2==1)
		return sqrt(2)*cos(k[1])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else if(z%2==1)
		return sqrt(2)*cos(k[2])*Iexp(k[0]*x+k[1]*y+k[2]*z);
	else return Iexp(k[0]*x+k[1]*y+k[2]*z);
}