gpt4 book ai didi

C++ 将 8 位 bitset 转换为 unsigned long,VS 2010 - 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:45 26 4
gpt4 key购买 nike

下面的代码首先工作了两次,然后在第三次转换为 ulong 失败并给我一个 0XCF 而不是 0xF3。知道问题是什么吗?似乎是 VS 2010 to_long 中的错误。二进制“11110011”应转换为十六进制 F3!以下是在 VS 2010 下运行调试时的结果。

第一次 bc_bit_char b'11000011' 转换为 k = x'000000c3';第二次:bc_bit_char b'00111100' 转换为 k = x'0000003c' 第三次:bc_bit_char b'11110011' 转换为 k = x'000000cf' 错误! s/b x'000000f3'

    std::bitset<8> bc_bit_char (00000000);
unsigned char bc_char=' ', bc_convert_char=' ';
unsigned long k=0, bc_rows=0;

k = bc_bit_char.to_ulong(); // convert 8 bits to long integer with same bits
bc_convert_char = static_cast<unsigned char> (k); // convert long integer to unsigned

最佳答案

对于哪个位最重要,哪个位最不重要存在混淆。在您提供的二进制常量中,最左边的位是最低位 0。在to_long 提供的十六进制值中,最左边的位是最高位的第7 位。如果你颠倒其中一个,那么它们将相等。

关于C++ 将 8 位 bitset 转换为 unsigned long,VS 2010 - 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23122563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com