C 二进制输出 移位 改变某个位为0

 #include<stdio.h>

 

int get_bin(int num,int w){

   return(num&1<<w?1:0);

}

/*传入需要转换的整数num和要改变的位w*/

void show_bin(int num){

  int i;

    for(i=31;i>=0;i--)

      printf("%d",get_bin(num,i));

        printf("/n");

}

/*传入num 调用 get_bit转换并输出 */

void left(int num,int k){

  num=num<<k;

    show_bit(num);

}

/*左移k位 show_bin*/

void right(int num,int k){

  num=num>>k;

    show_bit(num);

}

/*右移k位并输出*/

void change(int *num,int k){

  num=num&~(1<<k-1);

    show_bin(num);

}

/*传入num 把第k位置0*/

int main(int argc,int *argv[]){

    int num=atoi(argv[1]);

    show_bin(num);

    left(num,atoi(argv[2]));

    right(num,atoi(argv[3]));

    change(&num,atoi(argv[4]));

 

}

/*

编译 :gcc -o binary binary.c

执行  :./binary 15 5 3 5 

输入15 左移5位 右移3位 把第五位置0

学习中,老师一个周讲完C

main函数的参数argc是做什么用的?试着删掉会编译错误。。。

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值