Beispiel #1
0
char *PadStrTo(char*Dest, char Pad, int PadLen)
{
char *NewStr=NULL;
int val, len;

if (PadLen==0) return(Dest);

len=StrLen(Dest);
if (PadLen > 0) 
{
	val=PadLen-len;
	if (val > 0) return(PadStr(Dest,Pad,val));
}
else //must be negative, meaning PrePad rather than PostPad
{
	val = (0 - PadLen) - len;
	if (val > 0) return(PadStr(Dest,Pad,0-val));
}

return(Dest);
}
Beispiel #2
0
char *CopyPadStr(char*Dest, const char *Src, char Pad, int PadLen)
{
Dest=CopyStr(Dest,Src);
Dest=PadStr(Dest,Pad,PadLen);
return(Dest);
}
Beispiel #3
0
bool BitFlipper::Test(unsigned int num_bits_, unsigned int input_, const std::string *text_/*=NULL*/){
	if(num_bits_ > 32){ return false; } // Too many bits for unsigned int
	
	bool *active_bits = new bool[num_bits_];
	unsigned int *bit_values = new unsigned int[num_bits_];
	unsigned int *running_total = new unsigned int[num_bits_];
	
	unsigned int total = 0;
	unsigned int count = 1;

	for(unsigned int i = 0; i < num_bits_; i++){
		bit_values[i] = count;
		if(input_ & (1 << i)){ 
			active_bits[i] = true; 
			
			total += count;
			running_total[i] = total;
		}
		else{ 
			active_bits[i] = false; 
			running_total[i] = 0;
		}
		count *= 2;
	}
	
	std::cout << " Input: 0x" << std::hex << input_ << " (" << std::dec << input_ << ")\n";
	if(text_ != NULL){ std::cout << "  Bit   On?    Value       Total    Bit Function\n"; }
	else{ std::cout << "  Bit   On?    Value       Total\n"; }

	std::string bit_function;
	for(unsigned int i = 0; i < num_bits_; i++){
		if(text_ != NULL){ bit_function = csr_txt[i]; }
		else{ bit_function = ""; }
		
		if(active_bits[i]){ 
			if(Display::hasColorTerm){
				if(i < 10){ 
					std::cout << TermColors::DkGreen << "   0" << i << "    1  " << PadStr(bit_values[i], 12);
					std::cout << PadStr(running_total[i], 12) << bit_function << TermColors::Reset << std::endl; 
				}
				else{ 
					std::cout << TermColors::DkGreen << "   " << i << "    1  " << PadStr(bit_values[i], 12);
					std::cout << PadStr(running_total[i], 12) << bit_function << TermColors::Reset << std::endl;
				}
			}
			else{
				if(i < 10){ std::cout << "   " << i << "    1  " << PadStr(bit_values[i], 12) << PadStr(running_total[i], 12) << bit_function << std::endl; }
				else{ std::cout << "   " << i << "    1  " << PadStr(bit_values[i], 12) << PadStr(running_total[i], 12) << bit_function << std::endl; }
			}
		}
		else{ 
			if(i < 10){ 
				std::cout << "   0" << i << "    0  " << PadStr(bit_values[i], 12);
				std::cout << PadStr(running_total[i], 12) << bit_function << std::endl; 
			}
			else{ 
				std::cout << "   " << i << "    0  " << PadStr(bit_values[i], 12);
				std::cout << PadStr(running_total[i], 12) << bit_function << std::endl; 
			}
		}
	}

	delete[] active_bits;
	delete[] bit_values;
	delete[] running_total;
	
	return true;
}