Linux下的C语言——位运算

来源:互联网 发布:淘宝客服主管考核 编辑:程序博客网 时间:2024/06/05 15:38


1. 题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数ap位设置为v,输出修改后的该整数的二进制表示.

#include <stdio.h>void replacebit(int n,int p,int v,int num[]){int i;int mask;int temp;int len = 0; temp = n & (1 << (p - 1));if(v == 1){n = n | (1 << (p - 1));}else{n = n & (~(1 << (p - 1)));}for(i = 0; i < 32; i++){num[i] = ((n >> i) & 1);}for(i = 31; i >= 0; i--){printf("%d",num[i]);}}int main(){int n;int p;int v;int num[32];printf("input a integer:\n");scanf("%d",&n);printf("input p < 32 and v(0|1):");scanf("%d%d",&p,&v);replacebit(n,p,v,num);    return 0;}

0 0
原创粉丝点击