相关疑难解决方法(0)

RGB到十六进制,十六进制到RGB

如何将RGB格式的颜色转换为Hex格式,反之亦然?

例如,转换'#0080C0'(0, 128, 192).

javascript rgb hex colors

498
推荐指数
18
解决办法
42万
查看次数

在C中将字节转换为Int/uint

我有一个unsigned char数组[248]; 填充字节.像2F AF FF 00 EB AB CD EF .....这个阵列是我的字节流,我将来自UART(RS232)的数据存储为缓冲区.

现在我想将字节转换回我的uint16和int32.

在C#中,我使用BitConverter类来执行此操作.例如:

byte[] Array = { 0A, AB, CD, 25 };
int myint1 = BitConverter.ToInt32(bytes, 0);
int myint2 = BitConverter.ToInt32(bytes, 4);
int myint3 = BitConverter.ToInt32(bytes, 8);
int myint4 = BitConverter.ToInt32(bytes, 12);
//...
enter code here
Console.WriteLine("int: {0}", myint1); //output Data...
Run Code Online (Sandbox Code Playgroud)

C中是否有类似的功能?(没有.net,我使用KEIL编译器,因为代码在微控制器上运行)

关心萨姆

c arrays int serialization byte

14
推荐指数
3
解决办法
7万
查看次数

在C/C++中从64位值中获取32位字,而不用担心字节序

我的理解是,在C/C++中,按位运算符应该是字节独立的,并且表现得像你期望的那样.我想确保我真正从64位值中获得最重要和最不重要的单词,而不用担心机器的字节顺序.这是一个例子:

uint64_t temp;
uint32_t msw, lsw;
msw = (temp & 0xFFFFFFFF00000000) >> 32;
lsw = temp & 0x00000000FFFFFFFF;
Run Code Online (Sandbox Code Playgroud)

这会有用吗?

c c++ bit-manipulation endianness bitwise-operators

10
推荐指数
2
解决办法
5986
查看次数

小端和大端的反转

这会是:

((0x10203040 >> 24) & 0xFF) == 0x10
Run Code Online (Sandbox Code Playgroud)

在little-endian和big-endian机器上总是正常的吗?

c++ memory binary memory-management

5
推荐指数
1
解决办法
265
查看次数

为什么我必须在*左移之前将'uint8_t`转换为'uint64_t`*?

我只想将uint8_t数组连接到uint64_t.事实上,我解决了我的问题,但需要了解原因.这是我的代码;

    uint8_t byte_array[5];

    byte_array[0] = 0x41;
    byte_array[1] = 0x42;
    byte_array[2] = 0x43;
    byte_array[3] = 0x44;
    byte_array[4] = 0x45;

    cout << "index 0: " << byte_array[0] << " index 1: " << byte_array[1] << " index 2: " << byte_array[2] << " index 3: " << byte_array[3] << " index 4: " << byte_array[4] << endl;

    /* This does not work */
    uint64_t reverse_of_value = (byte_array[0] & 0xff) | ((byte_array[1] & 0xff) << 8) | ((byte_array[2] & 0xff) << 16) | …
Run Code Online (Sandbox Code Playgroud)

c++

5
推荐指数
1
解决办法
2906
查看次数

关于小端和大端的按位非运算符(〜在C中)

这与家庭作业有关,但这不是家庭作业.

我有困难的理解,如果有就如何按位取反(差别~在C)将受到影响signed int,并unsigned int当大端机器上对小端机编译.

字节是否真的 "向后",如果是,那么按位(和其他运算符)会导致int根据机器类型产生不同的结果吗?

虽然我们在这里,对于C中的每个按位运算符,答案是否相同,或者它是否依赖于它?

我所指的运营商是:

~  /* bitwise Not */
&  /* bitwise And */
|  /* bitwise Or */
^  /* bitwise Exclusive-Or */
Run Code Online (Sandbox Code Playgroud)

先感谢您!

更新:到目前为止,在阅读我的回复时,我觉得有必要问一下bitwise not运算符是否会影响a上的符号位signed int.因为我忘记了所有那些狡猾的事情,所以我担心我在这方面有点困惑.亚当似乎在说所有的价值都被视为无符号.重新应用符号位还是一次签名的值变为无符号?

c endianness bitwise-operators

4
推荐指数
1
解决办法
2万
查看次数

位掩码的最后5位

我有一个位掩码(存储为短).出于各种目的,我想将除最后5位之外的所有内容归零 - 我确信通过按位运算符可以很容易地实现这一点,但它让我望而却步.

1010 01101 1011 0111 -> 0000 0000 0001 0111
Run Code Online (Sandbox Code Playgroud)

谢谢

c#

1
推荐指数
1
解决办法
838
查看次数