C语言基础-将手动输入的16位数字分别左旋转和右旋转n位

这是我个人学习c语言的练习,如果对你有帮助,请关注我,我将不定期更新,如果疑问或者建议可以在评论区留言沟通。

/*
*Copyright(c)2018 vinnfeng
*文件名:main.c
*描述:将手动输入的**16位数字分别左旋转和右旋转**n位
*作者:V万能的小黑V
*日期:2018年11月21日
*当前版本:1.0
*/
#include <stdio.h>
/*
*函数名称:retate16Left
*描述:将形参num获取的值左旋转n位
×作者:V万能的小黑V
×完成日期:2018年11月21日
×返回:短整形num3为旋转的结果
×当前版本:1.0
*/
unsigned short int rotate16Left(unsigned short int num,int n){
	unsigned short int num1,num2,num3;
	num1 = num >> n;
	num2 = num << (n*3);
	num3 = num1 | num2;
	//printf("111111");
	//printf("%#x\n",num3);
	return num3;
}
/*
*函数名称:rotate16Right
*描述:将形参num获取的值右旋转n位
×作者:V万能的小黑V
×完成日期:2018年11月21日
×返回:短整形num3为旋转的结果
×当前版本:1.0
*/
unsigned short int rotate16Right(unsigned short int num,int n){
	unsigned short int num1,num2,num3;
	num1 = num >> (n*3);
	num2 = num << n;
	num3 = num1 | num2;
	//printf("22222");
	//printf("%#x\n",num3);	
	return num3;
}
/*
*函数名称:main
*描述:实现手动输入16位数字和要旋转的位数,并将原始数字以及左旋转和有旋转的数字打印出来
×作者:V万能的小黑V
×完成日期:2018年11月21日
×输入:短整型num为手动输入的16为数字,整型n为旋转的位数
×当前版本:1.0
*/
int main(void)
{
	unsigned short int num;
	int n;
	printf("请输入一个16进制的数字,以及想要左旋转右旋转的位数,我们将自动为您计算:");	
	scanf("%hx %d",&num,&n);
	//scanf("%d",&n);

	printf("原始数字:%#x\n",num);
	printf("左旋转%d位后的数字为:%#x\n",n,rotate16Left(num,n));
	printf("右旋转%d位后的数字为:%#x\n",n,rotate16Right(num,n));
	return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值