13,825
社区成员
发帖
与我相关
我的任务
分享
for(int j=0;j<8;++j)
{
if (!(a[i]<<j) &0x01)
return i * 8 + j;
}
BYTE GetNew2(BYTE array[], int size)
{
BYTE Ret =0;
AnsiString Temp = "";
for(int i = 0;i<size;i++)
{
Temp = Temp + IntToStr(array[i])+",";
}
for(int i = 0;i<size;i++)
{
if(!Temp.Pos(IntToStr(i)+","))
{
Ret = i;
break;
}
}
return Ret;
}
void __fastcall TForm1::btn2Click(TObject *Sender)
{
BYTE array[]={0,1,4,2,3,6,7,8,9};
ShowMessage(GetNew2(array, sizeof(array)));
}
unsigned char GetNew(unsigned char *array, size_t t, unsigned char &min)
{
char org[256] = {-1};
// 根据现有的数据生成一个新的数组,该数组中的元素未出现在现有的数组中。
for ( int i = 0; i < t; i++ )
{
org[array[i]] = 0;
}
// 查找出第一个值等于-1的元素, 该值就是最小的一个元素。
for ( int i = 0; i < 256; i++ )
{
if ( org[i] == -1 )
{
min = i;
return 1;
}
}
return 0;
}
bool GetNew(unsigned char array[],size_t size, unsigned char &FoundByte)
{
bool Found[256] = {0};
for (int i = 0; i < size; i++) {
Found[array[i]] = true;
}
for (int i = 0; i < 256; i++) {
if (!Found[i]) {
FoundByte = i;
return true;
}
}
return false;
}