无符号整型数的反转

本文介绍了如何在C语言中反转无符号整型数。通过将32位二进制数拆分并逐位反转,或者利用位移和按位与操作实现反转。这种方法简洁高效,展现了编程中的技巧和智慧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无符号整形数的反转

在编写这道题的程序时,费了老大劲才写出了这样的程序:(小白求轻拍)

unsigned char reverse_bit_char(unsigned char y)
{
	int i = 0;
	unsigned char blank = 0x01;
	unsigned char num = 0;
	for (i = 7; i >0; i -= 2)
	{
		num = (y >> i)&(blank) | num;
		blank <<= 1;
	}
	blank = 0x80;
	for (i = 7; i >0; i -= 2)
	{
		num = (y << i)&(blank) | num;
		blank >>= 1;
	}
	return num;
}

unsigned int reverse_bit(unsigned int x)
{
	unsigned short a = x / 0x10000;
	unsigned short b = x;
	unsigned char c = b / 0x100;
	unsigned char d = b;
	c = reverse_bit_char(c);
	d = reverse_bit_char(d);
	c = c^d;
	d = c^d;
	c = c^d;
	b = c * 0x100 + d;
	a = a^b;
	b = a^b;
	a = a^b;
	x = a * 0x10000 + b;
	return x;
}

总共定义了两个函数,使用的方法是把int型数的32bit二进制先
拆分成

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值