📄 tt.c
字号:
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
#include <string.h>
#include "tt.h"
//#define MIN(A,B) ((A)<=(B)?(A):(B))
//int cmp(const void *a, const void *b);
//#include "stdio.h"
//#include "malloc.h"
//int main()
//{
//int l;
//int b=4;
//int c[]={1,2};
//int *p=c;
//l=MIN(*p++,b);
//printf("%d\n",l);
/*
char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
puts("Got a null pointer");
else
puts("Got a valid pointer");
*/
/*
int *p, *q;
int a[3];
a[0]=0; a[1]=1; a[2]=2;
p=a;
q=&a[2];
printf("%d\n",a[q-p]);
*/
/*
char *b;
char *m = (char *)malloc(1);
b=m+5; //指针超出了申请空间的范围
*b='e';
printf("%c\n",*b);
return 0;
*/
//}
main(int argc,char *argv[])
{
unsigned long key;
unsigned long *pfind;
unsigned long bitmask=0X7FFFFF;
int x=0;
unsigned long y;
key=1312086;
x=bbsearch(phonesegarr, 117245,key) ;
y=phonesegarr[x];
y&=~bitmask;
y=y>>23;
printf(districtarr[y]);
return 0;
}
/*
pfind=(unsigned long *)bsearch(&key,phonesegarr,117245,sizeof(unsigned long),cmp);
if (pfind!=NULL)
printf("find");
else
printf("failure");*/
int cmp(const void *a, const void *b)
{
unsigned long bitmask=0X7FFFFF;
unsigned long x,y;
x=*((unsigned long *)a);// & (bitmask);
y=*((unsigned long *)b) ;//& (bitmask);
y&=bitmask;
return((unsigned long *)a -(unsigned long *)b);
}
int bbsearch(unsigned long *pbuf, int nsize,unsigned long key)
{
int low = 0;
int high = nsize - 1;
unsigned long tmpvalue;
unsigned long bitmask=0X7FFFFF;
while (low <= high)
{
int mid = (low + high) / 2;
tmpvalue = pbuf[mid];
if ((tmpvalue&bitmask) < key)
low = mid + 1;
else if ((tmpvalue&bitmask) > key)
high = mid - 1;
else
return mid; // key found
}
return -1; // key not found.
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -