是否可以在 c++ 中将两位数保存在无符号字符中

Is it possible to save double digit numbers in an unsigned char in c++

本文关键字:两位 保存 字符 无符号 存在 c++ 是否      更新时间:2023-10-16

对于学校作业,我必须在无符号字符向量中保存从 0 到 255 的字符串值。 通常我只会为此使用字符串或整数,但我们被特别告知使用未初始化的字符。

在研究了更多关于无符号字符的信息后,它似乎可以将 ASCII 代码 0 保存为 255(我弄对了吗?那么是否可以在无符号字符中保存双位数(或三位数最多 255 位(数字?

非常感谢。 我真的很抱歉,如果这是非常基本的,但我仍然是 c++ 的新手。

尽管名称,无符号字符不包含 ASCII(或非 ASCII(字符。它保存存储为一系列位的整数值。每个位为 0 或 1。由于字符中有 8 位,因此我们有 10010111、00010110、00000010 等序列。这些是二进制(或"基数 2"(数字,因为我们在编写它们时只使用 2 个数字("0"和"1"(。当您在问题中说"两位数"或"三位"数字时,您是在谈论我们日常的以 10 为基数的系统,该系统使用 10 个数字(0 到 9(来书写数字。您需要阅读一些有关以 2 为基数的数字才能更好地理解这一点。但基本的事情是,一个无符号的字符包含一个从 0 到 255 的整数,我们如何用日常人类语言编写它并不重要。它们之所以被称为字符,是因为历史上它们经常被用来表示文本的字符。基本上,存储在字符中的整数用于"查找"ASCII表中的字符。

在无符号字符中,您可以存储从 0 到 255 的数字,因此问题的答案是 YES,您可以存储 3 位数字,但请注意不要溢出容量或者只存储最后 BITE(或 8 位(的信息。

如果你什么存储它有字符和他们的代码,你需要使用有符号的字符,或者更好的是有符号字符数组,这将类似于字符串。

是的,您最多可以存储 255 个。

由于char是 8 位(1 字节(,这意味着它最多可以存储 256 个数字(28个数字(

  • 如果是signed char,它可以存储从-128127
  • 如果是unsigned char,它可以存储从0255(只有正数(。

请记住,如果您有n位:

  1. 对于signed:-2n-1到 2n-1-1
  2. 对于unsigned:0 到 2n-1