Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ÎÒµÄ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Í·Îļþ×÷ÓÃ

POSIX±ê×¼¶¨ÒåµÄÍ·Îļþ
<dirent.h>        Ŀ¼Ïî
<fcntl.h>         Îļþ¿ØÖÆ
<fnmatch.h>    ÎļþÃûÆ¥ÅäÀàÐÍ
<glob.h>    ·¾¶ÃûģʽƥÅäÀàÐÍ
<grp.h>    ......

extern "C" ÔĶÁ±Ê¼Ç zz

·¢ÐÅÈË: RoachCock (·´¶¯Ñ§ÊõȨÍþ), ÐÅÇø: CPlusPlus
±ê  Ìâ: extern "C" ÔĶÁ±Ê¼Ç
·¢ÐÅÕ¾: ˮľÉçÇø (Fri Mar  7 00:22:47 2008), Õ¾ÄÚ
±¾ÒÔΪºÜ¼òµ¥£¬×ÐϸÔĶÁÁËһϠC++ ±ê×¼£¬·¢ÏÖÄÚÈÝ»¹²»ÉÙ¡£×ܽáÁËһϡ£
Òªµã£º
º¯ÊýÀàÐÍ£¬º¯ÊýÃû£¬±äÁ¿Ãû¾ßÓÐÓïÑÔÁ´½ÓÐÔ£¬language linkage¡£
ÓïÑÔÁ´½ÓÐÔ¿ÉÄÜ»áÓ°Ïìµ½ ......

keil C ´ÓÁãѧÆð ½Ìѵ1

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar num;
void main()
{
 TMOD=0x01;
 TH0=(65536-45872)/256;
 TL0=(65536-45872)%256;
 EA=1;
 ET0=1;
 TR0=1;
 P1=0xFF;
 while(1);
}
void T0_time() interrupt 1
{
  ......

¶ÑÕ»¡¢linux c³ÌÐò´æ´¢¿Õ¼ä²¼¾ÖµÄ×ܽá

Õ»Ö÷ÒªÓÃÀ´´æ·Å¾Ö²¿±äÁ¿, ´«µÝ²ÎÊý, ´æ·Åº¯ÊýµÄ·µ»ØµØÖ·.esp ʼÖÕÖ¸ÏòÕ»¶¥, Õ»ÖеÄÊý¾ÝÔ½¶à, espµÄֵԽС.
¶ÑÓÃÓÚ´æ·Å¶¯Ì¬·ÖÅäµÄ¶ÔÏó, µ±ÄãʹÓà malloc , new µÈ½øÐзÖÅäʱ,ËùµÃµ½µÄ¿Õ¼ä¾ÍÔÚ¶ÑÖÐ. ¶¯Ì¬·ÖÅäµÃµ½µÄÄڴ渽´øÓзÖÅäÐÅÏ¢, ËùÒÔÄãÄܹ» realloc ºÍ freeµ÷ËüÃÇ.
È«¾Ö£¬¾²Ì¬ºÍ³£Á¿ÊÇ·ÖÅäÔÚÊý¾ÝÇøÖеġ£Êý¾ÝÇø°üÀ¨b ......

cµÄIO

²¿·ÖÄÚÈÝÀ´×Ôhttp://www.programfan.com/article/2674.htmlÒÔ¼°http://www.programfan.com/article/showarticle.asp?id=2675
²¿·Ö·­ÒëÀ´×ÔTUM skript£¨c programmieren);
1.printf()£º
ǧÍò²»ÒªÒÅÍüÔÚprintf()µÄ×îºóÌí¼ÓNewLine"\n"¡£ÒòΪÔÚcµÄ¿âÖÐͨ³£ÓÐÐлº´æ»úÖÆ£¬Õâ¸öÒâζ×ÅÖ»Óе±Ò»ÐеÄÊäÈëͨ¹ý"\n"½áÊøÖ®Ç°£¬ÐеÄÊ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ