c - c中的位操作

标签 c bit-manipulation

如何使用按位运算符反转和旋转十六进制数并返回 C 中的数字?

例如:

0xabcd -> 0xdcba

0xabcd -> 0xdabc

最佳答案

很难知道从哪里开始这个问题。另外我闻到了作业的味道。

几点:

  • 没有“十六进制数”这样的东西。十六进制只是一种符号。你如何反转和旋转十进制数并返回C中的数字?例如:

    1776 -> 6771

    1776 -> 6771?

  • 要解决这个问题,您需要深入了解位置表示法,无论是 10 进制、16 进制、2 进制,还是其他。

  • 所有你需要的都可以通过加减乘除得到。 那些是对数字的操作。模数也很有帮助。

  • 如果你正好想乘以或除以2的幂,我向你推荐C左移<<和右移 >>运营商。这些非常适合使用 C 类型 unsigned 表示的数字或 unsigned long .

关于c - c中的位操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054278/

相关文章:

php - 不同机器上的按位运算结果不同

c# - 将枚举标志附加到循环中的参数(按位附加)

c# - 按位运算评估为长

c - 如何在C中将int打印到char类型的数组变量中?

c - 在字符串中的每个逗号后添加双引号

c - 如何从C中的包头数据中获取参与ARP的机器的MAC地址和IP地址?

c - 当我在全局范围内将 char 变量分配给 int 变量时,为什么编译器会给出错误?

algorithm - 循环移位的应用

x86 - Bit Hack 获取位变化的位置

java - 如何使用C中的crypt库进行DES加密? (设置 key 、加密、加密等)