c - (C) 短整型变量中的位移位/字符放置

标签 c hex byte

C 的新手。

这里的总体目标是将一个字符放入一个short int 中,并让它占据short int 的左字节而不是右字节。详细说明-

我正在尝试取一个变量:

unsigned short int packager;

(short int 是 2 个字节。)


并将这个字符放入其中:

unsigned char temp = A;

(A在二进制中是01000001。)


那么,这是怎么做到的呢?我希望 short int 看起来像这样:

0100 0001 0000 0000


我目前的想法是使用十六进制值。如果我能说类似的话 packager = 0x(temp) 或 0x(temp) 并附加一个 0? (idk ..)然后使用移位或掩蔽..我也许可以到达某个地方。最大的障碍似乎是我无法使用变量来生成十六进制值。同样,总体目标是将一个字符放入一个 short int 中,并让它占据 short int 的左字节而不是右字节。

最佳答案

就用

packager = A << 8

请注意,说左右字节是一个坏习惯。而是使用高和低。左和右可能被某些人解释为取决于地址顺序,因此取决于字节顺序(除非您真的想与地址顺序有关)。

关于c - (C) 短整型变量中的位移位/字符放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14905941/

相关文章:

Java 十六进制字节数组转换为整数而不先转换为字符串

c - 为 Pthreads 移植 GNU Pth 代码有什么注意事项吗?

c - 你如何在 C 中将结构成员排序到队列中?

java - Java 中 KML 颜色的十六进制到 BGR 十六进制转换

java - 转换具有非常大数字的十六进制值的字符串

python字节到位串

c - #pragma once 在 C 语言中是什么意思?

Android 构建 : No rule to make target `frameworks/base/preloaded-classes

c - 将十六进制格式的整数数组保存到 char "string"

go - 不能将 (type []byte) 用作 io.Reader 类型