ÎÒµÄCʵ¼ù(7)£ºÎ»¼ÆÊý
λ¼ÆÊý¾ÍÊǶÔÒ»¸öÊýÖоßÓÐÄ³Ð©ÌØÕ÷µÄλ½øÐмÆÊý¡£¿´ÏÂÃæÊµÏÖ£º
/* bitscount.c£ºÎ»¼ÆÊý */
/* ¼ÆËãxÖÐ1λµÄÊýÄ¿£º·½°¸1£¬²ÉÓ÷ÖÖβßÂÔ */
inline int pop(unsigned x){
/* ¶Ôÿ¸ö2λ×ֶΣ¬ÏÈÎö³öÆäÓҶ˵Ä1룬ÔÙÎö³öÆä×ó¶ËµÄ1λ£¬È»ºóÈÃÕâÁ½¸öλÏà¼Ó */
x=(x & 0x55555555)+((x>>1) & 0x55555555);
/* ¶Ôÿ¸ö4λ×ֶΣ¬ÏÈÎö³öÆäÓÒ¶Ë2λ×ֶΣ¬ÔÙÎö³öÆä×ó¶Ë2λ×ֶΣ¬È»ºóÈÃÕâÁ½¸ö2λ×Ö¶ÎÏà¼Ó */
x=(x & 0x33333333)+((x>>2) & 0x33333333);
/* ¶Ôÿ¸ö8λ×ֶΣ¬ÏÈÎö³öÆäÓÒ¶Ë4λ×ֶΣ¬ÔÙÎö³öÆä×ó¶Ë4λ×ֶΣ¬È»ºóÈÃÕâÁ½¸ö4λ×Ö¶ÎÏà¼Ó */
x=(x & 0x0f0f0f0f)+((x>>4) & 0x0f0f0f0f);
/* ¶Ôÿ¸ö16λ×ֶΣ¬ÏÈÎö³öÆäÓÒ¶Ë8λ×ֶΣ¬ÔÙÎö³öÆä×ó¶Ë8λ×ֶΣ¬È»ºóÈÃÕâÁ½¸ö8λ×Ö¶ÎÏà¼Ó */
x=(x & 0x00ff00ff)+((x>>8) & 0x00ff00ff);
/* ×îºóÈÃÁ½¸ö16λ×Ö¶ÎÏà¼Ó */
x=(x & 0x0000ffff)+(x>>16);
return x;
}
/* ·½°¸2£ºÓù«Ê½sum_digits(z)=z-[z/2]-[z/4]-...-[z/2**(n-1)]£¬
²¢½áºÏ·ÖÖβßÂÔÀ´¼ÆËã */
inline int pop_2(unsigned x){
unsigned n;
n=(x>>1) & 0x77777777; /* ¶Ôÿ¸ö4λ×Ö¶Îz£¬¼ÆËã[z/2] */
x=x-n; /* ¼ÆËãz-[z/2] */
n=(n>>1) & 0x77777777; /* ¼ÆËã[z/4] */
x=x-n; /* ¼ÆËãz-[z/2]-[z/4] */
x=(x+(x>>4)) & 0x0f0f0f0f; /* ¶ÔÿÏàÁÚµÄÁ½¸ö4λ×Ö¶ÎÏà¼Ó£¬À©Õ¹³É4¸ö8λ×Ö¶Î */
x=x*0x01010101; /* ³ËÒÔ0x01010101£¬¼´°ÑÕâ4¸ö×Ö½ÚÏà¼Ó£¬
½á¹û´æ·ÅÔÚ×î¸ß½×µÄÄǸö×Ö½ÚÖÐ */
return x>>24;
}
/* ·½°¸3£ºÍ¨¹ýx&(x-1)²»¶ÏµØ°Ñ×îÓÒ²àµÄ1λ¸Ä³É0룬²¢¼Ç¼ÏÂÕâÑùµÄÐ޸ĴÎÊý£¬Ö±µ½x±ä³É0 */
inline int pop_3(unsigned x){
int n=0;
while(x!=0){
++n;
x=x & (x-1);
}
return n;
}
/* ¼ÆËãÕû¸öÊý×éÖеÄ1λÊýÄ¿ */
int pop_array(unsigned A[], int n){
register int i,j,lim;
register unsigned s,s8,x;
s=0;
for(i=0;i<n;i=i+31){
lim=n <= i+31 ? n : i+31;
s8=0;
for(j=i;j<lim;++j){
x=A[j];
x=x-((x>>1) & 0x55555555); /* ±ä³É16¸ö2λ×Ö¶Î */
x=(x & 0x33333333)+((x>>2) & 0x33333333); /* ±ä³É8¸ö4λ×Ö¶Î */
x=(x+(x>>4)) &
Ïà¹ØÎĵµ£º
±àÕß°´
:·Ç³£»ù±¾¹ØÓÚCÓïÑÔµÄÎÊÌâ,Ò»¸öÐÅÏ¢Àà(¼ÆËã»ú,×ÊѶ¹¤³Ì,µç×Ó¹¤³Ì, ͨÐŹ¤³Ì)רҵµÄ±¾¿Æ±ÏÒµÉúÓ¦¸Ã´ïµ½µÄˮƽ¡£ÌâÄ¿²»ÄÑ,È«²¿¶¼ÄÜ¿ìËٵشðÍ꣬µ±È»Ò²ÐèÒªÒ»¶¨µÄ֪ʶ´¢±¸¡£
¶ÔÓÚ´ó¶àÊýÈË£¬ÎÒÃÇÔ¤ÆÚÄã¿ÉÄÜ´ð´í 3) 4) 15)Ì⣬ËùÒÔ´ð´í3µÀÒÔÄڵģ¬ÎÒÃÇÈÏΪÄãºÜ°ô
´ð´í5µÀÌâÒÔÄÚ£¬ÎÒÃÇÈÏΪÄ㻹²»´í(Ä ......
GCC°²×°³É¹¦,ËùÐèÎļþÓÐ:
libf2c-3.3.2-1.i386.rpm
libstdc++-devel-3.3.2-1.i386.rpm
glibc-kernheaders-2.4-8.36.i386.rpm
glibc-headers-2.3.2-101.i386.rpm
glibc-devel-2.3.2-101.i386.rpm
gcc-objc-3.3.2-1.i386.rpm
binutils-2.14.90.0.6-3.i386.rpm
gcc-3.3.2-1.i386.rpm
gcc-c++-3.3.2-1.i386.rpm
autom ......
//¿âº¯ÊýʵÏÖ
char *strcat (char *dst, const char *src)
{
char *p = dst;
while (*p)
p++;
while ((*p++ = *src++))
;
return dst;
}
char *strncat (char *s1, const char *s2, long unsigned int n)
{
char *dest = s1;
  ......
·¢ÏÖ¸öÈ«¾Ö±äÁ¿Óë¾Ö²¿±äÁ¿µÄÇø±ð:
[code=C/C++]
char** t;
main()
{
char c[1];
char** t1;
sprintf(c,"%d",t);
printf("t=%s---\n",c);
if(strcmp(c,"0")!=0)
&nbs ......
C/S Óë B/S
£±£®Ó²¼þ»·¾³²»Í¬:
¡¡¡¡C/S Ò»°ã½¨Á¢ÔÚרÓõÄÍøÂçÉÏ, С·¶Î§ÀïµÄÍøÂç»·¾³, ¾ÖÓòÍøÖ®¼äÔÙͨ¹ýרÃÅ·þÎñÆ÷ÌṩÁ¬½ÓºÍÊý¾Ý½»»»·þÎñ.
¡¡¡¡B/S ½¨Á¢ÔÚ¹ãÓòÍøÖ®ÉϵÄ, ²»±ØÊÇרÃŵÄÍøÂçÓ²¼þ»·¾³,ÀýÓëµç»°ÉÏÍø, ×âÓÃÉ豸. ÐÅÏ¢×Ô¼º¹ÜÀí. ÓбÈC/S¸üÇ¿µÄÊÊÓ¦·¶Î§, Ò»°ãÖ»ÒªÓвÙ×÷ϵͳºÍä¯ÀÀÆ÷¾ÍÐÐ&n ......