c - 如何在 C 中将 2 字节整数转换并分解为 2 个不同的字符?

标签 c

我想转换一个 unsigned int 并将其分成 2 个字符。例如:如果整数是 1,它的二进制表示将是 0000 0001。我想要一个 char 变量中的 0000 部分和另一个二进制变量中的 0001 部分。我如何在 C 中实现这一点?

最佳答案

如果你坚持你有一个 sizeof(int)==2然后:

  unsigned int x = (unsigned int)2; //or any other value it happens to be
  unsigned char high = (unsigned char)(x>>8);
  unsigned char low  = x & 0xff;

如果总共有 8 位(一个字节)并且将其分解为两个 4 位值:
  unsigned char x=2;// or whatever
  unsigned char high = (x>>4);
  unsigned char low = x & 0xf;

关于c - 如何在 C 中将 2 字节整数转换并分解为 2 个不同的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14950366/

相关文章:

c - 为什么我会收到一条错误消息,提示我的函数类型存在冲突? (编辑)

c - 如何使用 stdard.h 库解决与 C 中的变量参数相关的问题?

objective-c - 无法在 Objective-C/C 中正确 malloc

c - 在 C 中使用 libcurl 登录谷歌

c - insertAtTail 未在链表中添加节点

c - 相同的表达不同的答案

c - 从 scanf 中提取的引用值

c++ - 打印 "%p"有什么作用?

c - GLib:通过 UI 传播警告错误

c - 字节顺序与处理器或数据类型相关