通过二分查找方法为什么不能找到以十六进制表示的数
#include <stdio.h>
int a[] = {27, 36, 38, 44, 2, 3, 4, 5, 15, 19, 16, 46, 47, 48, 52};
unsigned int sub1[] = {0x7e, 0x7d, 0x7b, 0x77, 0x6f, 0x5f, 0x3f,0xef};
int BinarySearch1(unsigned int a[], int value, int n)
{
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high)
{
mid = (low + high) / 2;
if (a[mid] == value)
return mid;
if (a[mid] > value)
high = mid - 1;
if (a[mid] < value)
low = mid + 1;
}
return -1;
}
int main()
{
int c = 0x6f;
int num = BinarySearch1(sub1, c, 8);
printf("num= %d \t", num);
return 1;
}
如果是是查找0xef又可以找到,不知道为什么有些可以找到有些十六进制表示的数又找不到。