国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Training2:位操作訓練

2019-11-14 09:56:15
字體:
來源:轉載
供稿:網友

1. 題目:請編寫一個c函數,該函數給出一個字節中被置為1的位的個數

/*****************************************************copyright (C), 2016-2017, Lighting Studio. Co.,     Ltd. File name:Author:luoye   Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>int main(){	int num, mask;	int count=0, i;	PRintf("Please enter a number: ");	scanf("%d",&num);	mask=1<<7;	for(i=0;i<8;i++)	{		if(num&mask)		{			count++;		}		num<<=1;	}	printf("The 1 number is %d/n",count);    return 0;}

2.題目:輸入一個整數a,再輸入兩個整數p1,p2(p1,p2<32),輸出該整數的二進制表示方法中從右端開始的p1p2.

/*****************************************************copyright (C), 2016-2017, Lighting Studio. Co.,     Ltd. File name:Author:luoye   Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>int main(){	int num, num1, num2, mask, i;	printf("Please enter a number:");	scanf("%d",&num);	printf("Please enter two number(number<32):");	scanf("%d%d",&num1,&num2);	mask = 1<< num2-1;	for(i = num1; i <= num2; i++)	{		putchar(num&mask ? '1' : '0');		mask >>= 1;	}	printf("/n");    return 0;}

3.題目:輸入一個整數a,再輸入兩個整數p1,p2(p1,p2<32),將該整數的二進制表示方法中從右端開始的p1p2位取反后輸出

/*****************************************************copyright (C), 2016-2017, Lighting Studio. Co.,     Ltd. File name:Author:luoye   Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>int main(){	int num, num1, num2, mask, i;	printf("Please enter a number:");	scanf("%d",&num);	printf("Please enter two number(number<32):");	scanf("%d%d",&num1,&num2);	mask = 1<< num2-1;	for(i = num1; i <= num2; i++)	{		putchar( num & mask ? '0' : '1');		mask >>= 1;	}	printf("/n");    return 0;}

4. 題目:輸入一個整數a,再輸入兩個整數p(p<32),v(0|1),將該整數a的p位設置為v,輸出修改后的該整數的二進制表示.

/*****************************************************copyright (C), 2016-2017, Lighting Studio. Co.,     Ltd. File name:Author:luoye   Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>int main(){	int num, num1, num2, i;	int mask_0, mask_1, mask;	printf("Please enter a number: ");	scanf("%d",&num);	printf("Please enter a number(number<32): ");	scanf("%d",&num1);	printf("Please enter a number(number 0|1): ");	scanf("%d",&num2);	if( num2 == 1)	{		mask_1 = 1<<num1-1;  //生成一個指定位數1,其他位數為0的掩碼		num = num | mask_1;  	}	else	{		mask_0 = 1<<num1-1;  		mask_0 = ~mask_0;     //生成一個指定位數為0,其他位數為1的掩碼		num = num & mask_0;	}	mask =1<<31;	for(i=0;i<32;i++)	{		putchar( num & mask ? '1' : '0');		num <<=1;	}	printf("B/n");    return 0;}

5.題目:輸入一個32位的整數a,使用按位異或^運算,生成一個新的32位整數b,使得該整數b的每一位等于原整數a中該位左右兩邊兩個bit位的異或結果。

提示:0 ^ 0 = 0; 1 ^ 1 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1;

/*****************************************************copyright (C), 2016-2017, Lighting Studio. Co.,     Ltd. File name:Author:luoye   Version:0.1    Date: Description:Funcion List: *****************************************************/#include <stdio.h>int main(){	int num, num1, mask, mask_p, i;   //num為原來的數  num1為最后得出的數	int temp[34];	int sum = 1;	temp[0] = 0;            //默認32位的前面后面都為0	temp[33] = 0;	printf("Please enter a number: /n");	scanf("%d",&num);	mask = 1<<31;	for( i = 1; i <= 32; i++)	{		temp[i] = (num & mask ? 1 : 0 );		num <<=1;	}//  輸出原數的二進制表示//	for( i = 0; i < 34; i++)//	{//		printf("%d",temp[i]);//	}//	printf("/n");//相鄰兩位取異或	num1 = 0;	for( i = 32; i >=1; i--)	{		num1 += (temp[i - 1] ^ temp [i+1]) * sum;		sum *= 2 ;             //sum表示二的次方用來得到結果數b	}	mask_p = 1<<31;	for( i = 0; i < 32; i++)	{		putchar(num1 & mask_p ? '1' : '0');    //輸出結果數的二進制表示		num1 <<=1;	}	printf("/n");    return 0;}


上一篇:Dijkstra

下一篇:自定義RPC框架實現計劃

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 基隆市| 丹东市| 安仁县| 榆林市| 凤凰县| 阜新| 怀仁县| 建平县| 施甸县| 井冈山市| 陵川县| 舒兰市| 肥城市| 建水县| 都江堰市| 霍州市| 奉新县| 长春市| 桑日县| 青海省| 永靖县| 龙泉市| 巴马| 平邑县| 永靖县| 广宗县| 仙居县| 新干县| 思茅市| 教育| 绍兴县| 新乐市| 甘孜| 巴中市| 沂水县| 磐安县| 泸定县| 曲麻莱县| 五莲县| 乌鲁木齐县| 肃北|