栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言位运算案例2】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言位运算案例2】

C语言位运算案例2
    • 对有符号整型数x逻辑右移n位
    • 不使用!运算符实现!x
    • 32位int数最小值
    • n位二进制补码能表示x?能返回1,否则返回0
    • 返回 -x
    • 如果 x > 0 返回1,否则返回0

对有符号整型数x逻辑右移n位
int logical_shift(int x, int n) {
    int data = (unsigned int)x >> n;
    printf("0x%xn", data);
}
不使用!运算符实现!x
int nnot(int x) {
	int data= (x&&1)^1;
	printf("%dn",data);
}
32位int数最小值
int tmin(void) {
	int i=0;
	i=~i;
	i=i<<(sizeof(int)*8-1);
	printf("%dn",i);
}
n位二进制补码能表示x?能返回1,否则返回0
int fits_bits(int x, int n) { //n位能否表示数字x (5,3) (-4,3)
if(x>=0){
 if ( x>((1<<(n-1))-1) )
 	printf("0n"); 
	else
	printf("1n");
}
 
else{
	if(x<(-1)<<(n-1))
		printf("0n");
	else
		printf("1n");
	
}
返回 -x
int neg(int x) {
	int data;
	if(x>=0)
	{
		data=(~x)+1;
		printf("%dn",data);
	}
		if(x<0)
	{
		data=~(x-1);
		printf("%dn",data);
	}
}
如果 x > 0 返回1,否则返回0
int is_positive(int x) {
	if(x==0){
		printf("0n");
		return 0;
	}
	
	if(x>>31==0){
		printf("1n") ;	
	}
	else{
	printf("0n") ;	
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号