#include<stdio.h>intbinarySearch(int arr[],int left,int right,int target){while(left <= right){int mid = left +(right-left)/2;if(arr[mid]== target)return mid;if(arr[mid]< target)
left = mid +1;else
right = mid -1;}return-1;}intmain(int argc,char*argv[]){int arr[]={2,5,8,12,16,23,38,56,72,91};int n =sizeof(arr)/sizeof(arr[0]);int target =12;int index =binarySearch(arr,0,n-1,target);if(index !=-1)printf("%d\n",index);return0;}
计算函数给出一个字节中被置 1 的位的个数
#include<stdio.h>intcountByte(unsignedchar c){int count =0;while(c !=0){if(c &1)
count++;
c >>=1;}return count;}intmain(int argc,char*argv[]){char c =0xab;int b =countByte(c);printf("%d\n",b);return0;}
将给定的一个字符串转换成整数
/*===============================================
* 文件名称:iton.c
* 创 建 者: memories
* 创建日期:2023年07月06日
* 描 述:have a nice day
================================================*/#include<stdio.h>intiton(char*p){int num =0;while(*p !='\0'){int tmp =*p-48;
num = tmp+num*10;
p++;}return num;}intmain(int argc,char*argv[]){char a[]="asd";int num =iton(a);printf("%d\n",num);return0;}
将给定的一个整数转换成字符串
/*===============================================
* 文件名称:iton.c
* 创 建 者: memories
* 创建日期:2023年07月06日
* 描 述:have a nice day
================================================*/#include<stdio.h>voiditos(int n,char*str){int i =0;//判断是否为负数if(n <0){
str[i++]='-';
n =-n;}//将每一位数字转换并存放在字符串中int m;do{
m = n%10;
n = n/10;
str[i++]= m +'0';}while(n !=0);//倒置字符串int start =(str[0]=='-')?1:0;//判断从第几位开始倒转int end = i-1;while(start < end){char tmp = str[end];
str[end]= str[start];
str[start]= tmp;
end--;
start++;}
str[i]='\0';}intmain(int argc,char*argv[]){int n =-2121234;char str[20];itos(n,str);printf("%s\n",str);return0;}