C语言位运算符号的疑问

#include <stdio.h>

#define  uchar unsigned char
int main()
{
	uchar i = 0x0F;
	unsigned long long j = 0x0F;
	printf("%d,",sizeof(long long));
	printf("%ld,",j<<32);
	printf("%#016x,",j<<32);
	printf("%#016x,",i<<40);
	printf("%#016x,",-1L);
	printf("%#016x,",-4);
	printf("%#016x,",4);
	printf("%#016x,",(-4<<1)>>1);
	
	unsigned short k = 0xFF;;
	printf("\n\n\n%#016x,",k<<40);
	printf("%#016x,",k>>40);
	
	short l = -1;;
	printf("\n\n\n%#016x,",k<<40);
	printf("%#016x,",k);
	
	int m = -2;;
	printf("\n\n\n%#016x,",m<<40);
	printf("%#016x,",m>>32);
	return 0;
	//似乎有些类型不会溢出而是循环,仿佛位移运算符号的单元是一个int32或者usigned int32
 } 

8,0,0000000000000000,0x00000000000f00,0x000000ffffffff,0x000000fffffffc,0x00000000000004,0x000000fffffffc,


0x0000000000ff00,
--------------------------------
Process exited after 0.01545 seconds with return value 0
请按任意键继续. . .



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值