Files
Tools_CPP/lib/mathTools.~cpp
2024-11-01 12:23:13 +05:00

76 lines
2.1 KiB
Plaintext

//---------------------------------------------------------------------------
//#pragma hdrstop //Óïðàâëåíèå ïðåä êîìïèëÿöèåé
//#include "stdafx.h"
#include "mathTools.h"
//---------------------------------------------------------------------------
int MaxI4(int v1,int v2)
{ if(v1>v2) return v1; else return v2;
}
//---------------------------------------------------------------------------
int MaxI4_2(int v1,int v2)
{ if(v1>v2) return v1; else return v2;
}
//------------------------------------------------------------------------------
//ïðîâåðêà çíà÷åíèÿ áèòà â ìàññèâå (íóìåðàöèÿ ñ ëåâà íà ïðàâî) pos - 0..n
bool testBit(const unsigned char *mas,const unsigned char pos)
{
unsigned char mask=128;
unsigned char loc=pos/8;
mask=mask >> (pos-loc*8);
return (mask & mas[loc])==mask;
}
//------------------------------------------------------------------------------
//óñòàíîâèòü çàäàííûé áèò â 1 èëè â 0
void setBit(unsigned char *mas,const unsigned char pos,bool val)
{
unsigned char mask=128;
unsigned char loc=pos/8;
mask=mask >> (pos-loc*8);
if(val) mas[loc]=mas[loc] | mask;
else
{
mask=! mask;
mas[loc]=mas[loc] & mask;
}
}
//---------------------------------------------------------------------------
//Óñòàíîâèò çííà÷åíèå áèòà â çàäàííóþ ïîçèöèþ
///pos - Ïîçèöèÿ 7..0
uint1 setBitVal(uint1 bit,uint1 pos,bool val)
{
uint1 v=1;
v=0x1<<pos;
if(val)
{
bit=bit | v;
}else
{
v=v ^ 0xFF;
bit=bit & v;
}
return bit;
}
//---------------------------------------------------------------------------
//Âåðí¸ò çíà÷åíèå áèòà íà çàäàííîé ïîçèöèè
///pos - Ïîçèöèÿ 7..0
bool getBitVal(uint1 bit,uint1 pos)
{
uint1 v=1;
v=v<<pos;
return (bit & v) == v;
}
//---------------------------------------------------------------------------
//Ñêîðîñòü êîì ïîðòà ïî íîìåðó
long getBaudRate(long s)
{
if(s==0) return 1200;
if(s==1) return 2400;
if(s==2) return 4800;
if(s==3) return 9600;
if(s==4) return 19200;
if(s==5) return 38400;
if(s==6) return 57600;
if(s==7) return 115200;
return 0;
}
//---------------------------------------------------------------------------