【问题标题】:Convert from char to byte从字符转换为字节
【发布时间】:2017-06-11 22:54:25
【问题描述】:

您好,有没有一种方法可以让您从 char 转换为 byte。 我知道在c#中有方法。

Convert.ToByte('a');

但是在 c++ 中它是什么?我已经尝试谷歌它,但我找不到任何答案。

【问题讨论】:

  • char 和字节有什么不同?
  • char 类型是 C++ 中最小的可寻址单元,它始终是一个“字节”。
  • 那么,如果你想要一个字节,你是什么意思? 8位? char 不保证为 8 位,但通常是。还有其他数据类型可以保证 8 位。
  • @Muscampester 需要注意的是,必须有一个该大小的内置类型才能存在。
  • C++中没有byte数据类型

标签: c++


【解决方案1】:

与 C# 不同,C++ 没有名为 byte 的内置数据类型。此外,它的char 类型的大小为一个字节,而 C# 使用 16 位字符,因此转换总是很简单。

如果您希望代码明确说明八位数据类型的符号,请使用 <cstdint> 标头,声明 uint8_t 类型的变量,并将字符分配给它:

uint8_t x = 'a';

【讨论】:

  • 也可以使用unsigned char(虽然char 类型并不要求正好是8 位)。
  • 请注意,将 uint8_t 设置为字符文字是不好的形式。 char * 应该用于字符串,char 用于 ascii 字符或 UTF-8 字符片段,uint8_t 用于字节(小整数或尚未解码的数据流),
  • @MalcolmMcLean 是的。然而,这就是 OP 在 C# 中的代码在翻译成 C++ 时变成的样子。
  • 我使用了 unsigned char 并且成功了 :) 感谢所有帮助
猜你喜欢
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 2010-10-08
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
相关资源
最近更新 更多