Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以转换位集<;8>;用c++;?_C++_Char_Bitset - Fatal编程技术网

C++ 是否可以转换位集<;8>;用c++;?

C++ 是否可以转换位集<;8>;用c++;?,c++,char,bitset,C++,Char,Bitset,我有位集v8,其值类似于“11001101”,如何将其转换为字符?我需要一封信。比如字母“f”=01100110 另外,谢谢你的帮助。我需要这个来用位来说明随机错误。例如,没有错误f,并且有类似的错误♥, 以此类推,所有文本都在文件中。在文本中,您可以清楚地看到这些错误。提供的解决方案对我不起作用。我使用的是C++14和g++9。然而,我通过以下方式获得了: unsigned long i = mybits.to_ulong(); unsigned char c = static_cast&l

我有位集v8,其值类似于“11001101”,如何将其转换为字符?我需要一封信。比如字母“f”=01100110


另外,谢谢你的帮助。我需要这个来用位来说明随机错误。例如,没有错误f,并且有类似的错误♥, 以此类推,所有文本都在文件中。在文本中,您可以清楚地看到这些错误。

提供的解决方案对我不起作用。我使用的是C++14和g++9。然而,我通过以下方式获得了:

unsigned long i = mybits.to_ulong(); 
unsigned char c = static_cast<unsigned char>( i ); // simplest -- no checks for 8 bit bitsets
charlower='a';
位集上(下);
复位(5);

拜托,你甚至没有更改示例值。我想这家伙实际上是在问如何将位集转换为单个字符,而不是数组。如果我理解了这个问题,它是关于从整个位集中获取单个标量字符(),而不是数组,尽管它是
位集
,它不会包含无法在
无符号字符中表示的值。因此,这可能是比char
更好的选择。你可以任由你的实现把超出范围的值转换成有符号的类型,我们不知道纯字符是否有符号。我假设
8
就是一个例子。但我会解决这个问题。正因为如此,我说
无符号字符
可能是一个更好的选择,尽管只是“可能”,因为如果提问者确实需要
字符
,那么你首先说的是正确的,他们应该检查值。为什么要以
8
为例,在这个问题中,它不仅被陈述了两次,而且是要转换为
char
的位集的自然大小。“如何将
位集
转换为字符”将是一个更愚蠢的问题…@SteveJessop:是的。这是进行检查的一个原因。我甚至没有想到使用
bitset
而不是
unsigned char
uint8\t
的原因。我肯定有一些:-)
char c;
if (i <= CHAR_MAX) 
c = static_cast<char>( i );