| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1358 人关注过本帖
标题:很有用的C语言问题,请来看看
只看楼主 加入收藏
freedgun
Rank: 5Rank: 5
等 级:职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
收藏
得分:2 
#include <stdio.h>
void inverse(int *p, int n)
{
  int *q,t;
  q=p+n-1;
  while(p<q)
  {
    t=*p;*p=*q;*q=t;
    p++;q--;
   }
}
void main()
{
  int a[]={1,0,1,1,0,1,1,0};
  int k,*p;
  for(p=a,k=0;k<8;k++) printf("%2d",*p++); puts(" ");
  inverse(a,8);
  for(p=a,k=0;k<8;k++) printf("%2d",*p++); puts(" ");
 }

楼主觉得这个好理解不??

有什么样的付出,就有什么样的收获!!
2010-12-20 18:47
demon_yq
Rank: 1
等 级:新手上路
帖 子:3
专家分:2
注 册:2010-12-19
收藏
得分:2 
蝶形运算
2010-12-20 21:21
王晓明
Rank: 2
等 级:论坛游民
帖 子:40
专家分:62
注 册:2009-3-12
收藏
得分:2 
程序代码:
#include <stdio.h>
/*把一个数高地位交换,比如10110110,把它变成01101101*/
int main(int argc, char *argv[])
{
    unsigned char n=0xf0,i,temp;//n为输入的数
    unsigned char res=0x00;
    for(i=0;i<8;i++)
    {
        temp=(n>>i)%2;

        res|=temp<<i;
    }
    printf("%x\n",res);
    return 0;
}
2010-12-21 20:07
拂晓晨曦
Rank: 2
等 级:论坛游民
帖 子:87
专家分:44
注 册:2010-10-31
收藏
得分:2 
或,函数调用也行。。。
2010-12-21 20:10
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:0 
程序代码:
#include <stdio.h>
/*把一个数高地位交换,比如10110110,把它变成01101101*/
int main(void)
{
    unsigned char n=0xb6,i,j,mask;/*n为输入的数  */
    unsigned char res=0x00;
    for(i=7,j=7;i>3;i--,j-=2)
    {
        mask=n & (1<<(7-i));
        res|=mask<<j;
        mask=n & (1<<i);
        res|=mask>>j;
    }
    printf("%02x\n",res);
    getch();
    return 0;
}
c语言版的
2010-12-22 10:46
li_danwang
Rank: 4
来 自:鄂州
等 级:业余侠客
帖 子:112
专家分:203
注 册:2010-11-12
收藏
得分:0 
取反

没事来C一下...   
2010-12-23 10:51
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
最好用位运算

Discuz!  
好好学习  天天向上
2010-12-23 12:30
wangldd
Rank: 1
等 级:新手上路
帖 子:12
专家分:4
注 册:2010-6-3
收藏
得分:0 
#include <stdio.h>
#include <string.h>
int main(void )
{
    char s[]="10110110";
    printf("after  strrev : %s \n",strrev(s));
    return 0;
}
2010-12-23 16:43
PKUCJ2010
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-12-24
收藏
得分:0 
希望对你有用啊!!
/*输入整型数NUM_IN,对NUM_IN的二进制形式倒置,输出倒置之后的二进制形式所对应的整型数NUM_OUT*/
#include <stdio.h>
#include <math.h>
void main(){
  int num_in,num_temp,num_temp1,num_out=0,i=0,j=0,k=0,len=1;
  printf("input the integer number NUM_IN:\n");
  scanf("%d",&num_in);
  num_temp=num_in;
/*确定输入的整型数num_in的二进制数形式的位数*/
  for(;;len++){
      if((num_temp/=2)==0)break;
  }
/*计算将num_in的二进制数形式倒置之后的整型数num_out,并利用num_in输出num_out的二进制形式*/
  printf("the binary of the number NUM_OUT:\n");
  for(;;i++){
      printf("%d",num_in%2);
      num_out+=(num_in%2)*pow(2,len-1-i);
      num_in/=2;
      if(num_in==0)break;
  }
/*输出num_out的整型形式,并利用num_out输出num_in的二进制形式*/
  printf("\nthe integer number NUM_OUT:\n%d\nthe binary of the number NUM_IN:\n",num_out);
  num_temp1=num_out;
  for(;;j++){
      printf("%d",num_temp1%2);
      num_temp1/=2;      
      if(num_temp1==0){
          for(;k<=len-j-2;k++){printf("0");}}
      if(num_temp1==0)break;
  }
  printf("\n");
}
2010-12-24 12:48
快速回复:很有用的C语言问题,请来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved