Для школьного задания мне нужно сохранить строковые значения от 0 до 255 в беззнаковом векторе символов. обычно я бы просто использовал для этого строки или целые числа, но нам специально сказали использовать unisgned char.
Изучив больше о беззнаковых символах, кажется, что он может сохранять код ASCII от 0 до 255 (правильно ли я понял?) Так возможно ли вообще сохранить двузначное (или тройное до 255) число цифр в беззнаковом символе?
Большое спасибо. Мне очень жаль, если это очень просто, но я все еще новичок в С++.
Ответ 1 · Robert Lewis
Несмотря на свое название, unsigned char не содержит символов ASCII (или не-ASCII). Он содержит целые значения, хранящиеся в виде последовательности битов. Каждый бит равен 0 или 1. Поскольку в символе 8 бит, у нас есть такие последовательности, как 10010111, 00010110, 00000010 и т. д. Это двоичные числа (или "основание 2"), поскольку мы используем только 2 цифры при их записи. ("0" и "1"). Когда вы говорите "двузначное" или "трехзначное" число в своем вопросе, вы говорите о нашей повседневной системе счисления с основанием 10, в которой для записи чисел используются 10 цифр (от 0 до 9). Вам нужно немного прочитать о числах с основанием 2, чтобы понять это лучше. Но основная вещь заключается в том, что unsigned char содержит целое число от 0 до 255, и не имеет значения, как мы напишем его на нашем повседневном человеческом языке. Причина, по которой они называются символами, заключается в том, что исторически они часто использовались для представления символа текста. В основном целое число, хранящееся в char, использовалось для "поиска" символа в таблице ASCII.
Ответ 2 · Zig Razor
В беззнаковом символе вы можете хранить число от 0 до 255, поэтому ответ на ваш вопрос ДА, вы можете хранить 3-значное число, но обратите внимание, чтобы не переполнить емкость или вы храните только последний BITE (или 8 бит) информации.
Если вы храните в нем символы с их кодом, вам нужно использовать подписанный символ или, лучше, массив подписанных символов, который будет похож на строку.
Ответ 3 · hrithik gautham
Да, вы можете хранить до 255.
Поскольку char состоит из 8 бит (1 байт), это означает, что он может хранить до 256 чисел (28 чисел).
- Если это
signed char, он может хранить от -128 до 127.
- Если это
unsigned char, он может хранить от 0 до 255 (только положительные числа).
Просто помните, если у вас n бит:
- Для
signed: от -2n-1 до 2n-1-1.
- Для
unsigned: от 0 до 2n-1.