Сколько места занимает один символ
Перейти к содержимому

Сколько места занимает один символ

  • автор:

Сколько бит занимает один символ (например F) на жестком диске?

———————
А если русский? Он же состоит из трех каких-то символов (тобишь %AC) или только один бит?

Дополнен 17 лет назад
———————-
Так сколько же? 1 или 8 ?
Дополнен 17 лет назад
Лучший ответ

Объясняю популярно. Что такое 1 бит? это 0 или 1.Всего 2 варианта. Каши из них не сваришь.
Что такое один байт? 8 бит, или 2^8=256 вариантов. В 256 вариантов можно уместить русский и английский алфавит, и спецсимволы.
Если символ занимает 1 байт, то он принадлежит кодировке ASCII, в большинстве документов так оно и етсь.
Есть еще кодировка UNICODE,в ней один символ занимает 2 байта (16 бит), это 65536 вариантов букв, в эту кодировку можно уместить все языки мира. Эти документы менее распространены.
Ответ: 8 или 16 бит.

Остальные ответы
1 бит. сколько он еще может занимать?
Помоему 8. Короче колись-не колись, а я не знаток.
один по-любому
1 символ=1 байт=8 бит

если символ отдельный в отдельном файле то занимает отдельный кластер.
если он является частью «цепочки символов (скажем просто текста)», то занимает либо 8 бит либо, в случае сохранения его в уникоде, 16 бит

8 битов, т.е. один байт

Открой «Блокнот» в ОС XP напиши символ и сохрани. А затем посмотри на объём сохранённого файла.
Да и вообще любой символ занимает 8бит=1байт. т.к это называется бинарный код а он может состоять только из 8 нулей или единиц например 00110100

примерно так
английские символы — ASCII или ANSi — одноБАЙТНАЯ кодировка (char 1байт или 8 бит)
а прочие локальные — зависит от кодировки 1, 2 или 3 БАЙТА

Есть еще кодировка UNICODE,в ней один символ занимает 2 байта (16 бит), это 65536 вариантов букв, в эту кодировку можно уместить все языки мира. Эти документы менее распространены.
На сегодняшний день в UNICODE уже более 910 000 символов. Вот тут все наглядно и с циферками unicode-table»dot»com

1 символ занимает 8 бит

В большинстве случаев можно считать, что:
— буква английского алфавита занимает 1 байт (8 бит);
— буква русского алфавита занимает 2 байта (16 бит).
Естественно, всё зависит от используемой кодировки, но будем считать, что это UTF-8.

Объем памяти, занимаемый текстом

Для представления текстовой (символьной) информации в компьютере используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации (2 8 =256). 8 бит =1 байту, следовательно, двоичный код каждого символа в компьютерном тексте занимает 1 байт памяти.

Уровень «3»

  1. Сколько бит памяти займет слово «Микропроцессор»?([1],c.131, пример 1)

Решение:

Слово состоит из 14 букв. Каждая буква – символ компьютерного алфавита, занимает 1 байт памяти. Слово занимает 14 байт =14*8=112 бит памяти.

Ответ: 112 бит

  1. Текст занимает 0, 25 Кбайт памяти компьютера. Сколько символов содержит этот текст? ([1],c.133, №31)

Решение:

Переведем Кб в байты: 0, 25 Кб * 1024 =256 байт. Так как текст занимает объем 256 байт, а каждый символ – 1 байт, то в тексте 256 символов.

Ответ: 256 символов

  1. Текст занимает полных 5 страниц. На каждой странице размещается 30 строк по 70 символов в строке. Какой объем оперативной памяти (в байтах) займет этот текст? ([1],c.133, №32)

Решение:

30*70*5 = 10500 символов в тексте на 5 страницах. Текст займет 10500 байт оперативной памяти.

Ответ: 10500 байт

  1. Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения из пушкинского четверостишия:

Певец-Давид был ростом мал, Но повалил же Голиафа! (ЕГЭ_2005. демо, уровень А)

1) 400 бит 2) 50 бит 3) 400 байт 4) 5 байт

Решение:

В тексте 50 символов, включая пробелы и знаки препинания. При кодировании каждого символа одним байтом на символ будет приходиться по 8 бит, Следовательно, переведем в биты 50*8= 400 бит.

Ответ: 400 бит

  1. 5.Считая, что каждый символ кодируется одним байтом, оцените информационный объем следующего предложения в кодировке КОИ-8: Сегодня метеорологи предсказывали дождь. (ЕГЭ_2005, уровень А)

Решение:

В таблице КОИ-8 каждый символ закодирован с помощью 8 бит. См. решение задачи №4.

Ответ: 320 бит

  1. Считая, что каждый символ кодируется 16 битами, оцените информационный объем следующего предложения в кодировкеUnicode:

Каждый символ кодируется 8 битами.

(ЕГЭ_2005, уровень А)

Решение:

34 символа в предложении. Переведем в биты: 34*16=544 бита.

Ответ: 544 бит

  1. Каждый символ закодирован двухбайтным словом. Оцените информационный объем следующего предложения в этой кодировке:

В одном килограмме 100 грамм.

(ЕГЭ_2005, уровень А)

Решение:

19 символов в предложении. 19*2 =38 байт

Ответ: 38 байт

Уровень «4»

  1. Текст занимает полных 10 секторов на односторонней дискете объемом 180 Кбайт. Дискета разбита на 40 дорожек по 9 секторов. Сколько символов содержит текст? ([1],c.133, №34)

Решение:

  1. 40*9 = 360 -секторов на дискете.
  2. 180 Кбайт : 360 * 10 =5 Кбайт – поместится на одном секторе.
  3. 5*1024= 5120 символов содержит текст.

Ответ: 5120 символов

  1. Сообщение передано в семибитном коде. Каков его информационный объем в байтах, если известно, что передано 2000 символов.

Решение:

Если код символа содержит 7 бит, а всего 2000 символов, узнаем сколько бит займет все сообщение. 2000 х 7=14000 бит.

Переведем результат в байты. 14000 : 8 =1750 байт

Ответ: 1750 байт.

Уровень «5»

  1. Сколько секунд потребуется модему, передающему сообщение со скоростью 28800 бит/с, чтобы передать 100 страниц текста в 30 строк по 60 символов каждая, при условии, что каждый символ кодируется одним байтом? (ЕГЭ_2005, уровень В)

Решение:

  1. Найдем объем сообщения. 30*60*8*100 =1440000 бит.
  2. Найдем время передачи сообщения модемом. 1440000 : 28800 =50 секунд

Ответ: 50 секунд

  1. Сколько секунд потребуется модему, передающему сообщения со скоростью 14400 бит/с, чтобы передать сообщение длиной 225 Кбайт? (ЕГЭ_2005, уровень В)

Решение:

  1. Переведем 225 Кб в биты.225 Кб *1024*8 = 1843200 бит.
  2. Найдем время передачи сообщения модемом. 1843200: 14400 =128 секунд.

Ответ: 128 секунд

Сколько байт занимает символ и почему?

Author24 — интернет-сервис помощи студентам

Добрый день, уважаемые форумчане. Всем известно что sizeof(char) == 1 .Заметил, что sizeof(‘1’),sizeof(‘/n’) , равно 4. Почему так ? Было наивное убеждение , что sizeof(‘1’) тоже равно 1.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Почему переменная занимает именно столько байт?
Вычислите значение переменной size после выполнения кода программы на языке Turbo-C (модель памяти.

Демонстрация того, сколько байт занимает каждый тип переменной
В блогах видел большую тему про переменные. Там была таблица про то, сколько байт занимает каждый.

Сколько байт занимает один символ BigInteger?
Думаю, для записи одной цифры достаточно 4 бита. Но так ли это в BigInteger? Сколько байт/бит.

Как определить, сколько байт занимает массив?
Как определить сколько байт занимает массив? Приведите фрагмент кода, с помощью которого можно это.

6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

Это потому, что символьные литералы ‘1’, ‘/n’ и т.п. имеют тип инт по стандарту языка.
Регистрация: 05.01.2013
Сообщений: 45
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта
Предположим, что переменная типа CHAR занимает 1 байт, переменная типа INTEGER занимает два байта.

Оцените, сколько места на компакт-диске занимает видеоинформация и сколько звуковая дорожка
На компакт-диске записана видеозапись допроса обвиняемого в формате MPEG4 — сжатый формат. Размер.

Ввести строку символов, длиной до 20 байт. Ввести слово, размером до 10 байт. Содержит ли данная строка символ
Для начала организовал просто поиск одной буквы(код уже переделан от исходного),теперь пытаюсь.

Строка: Определите сколько раз среди символов строки встречается символ + и сколько раз символ * .
16 Дана строка символов. Определите сколько раз среди символов строки встречается символ + и.

Или воспользуйтесь поиском по форуму:

Почему char занимает 1 байт, а строка с одним символом — 2 байта?

Слышал что-то про добавление в конце строк » \0 «, но не вдавался в подробности. Кто знает, ответьте пожалуйста!

  • Вопрос задан более трёх лет назад
  • 13302 просмотра

Комментировать
Решения вопроса 3

Djaler

Сеньор-помидор
Все правильно, этот 1 байт занимает символ конца строки ‘\0’
Ответ написан более трёх лет назад
Комментировать
Нравится 9 Комментировать

Существует 2 типа строк:

Типа С.
Тип Паскаль.

К языкам это не имеет отношения: язык Паскаль может использовать строки типа С, язык С может использовать строки типа Паскаль. Название просто исторически возникло, т.к. изначально в С и Паскале были только одного вида строки (разные, такие как описано ниже).

Строка типа С — это массив байтов, заканчивающийся нулем. То есть строка не может содержать символ с кодом 0 (не числом 0, а символ с кодом 0, нулевой байт). Длина строки всегда = количество символов + 1 байт (с нулевым кодом) в конце строки.

Строка типа Паскаль в начале хранит 1 байт, указывающий длину строки, затем идет массив символов. Строка может содержать внутри себя символы с кодом 0. Но не может быть длиннее 255 байт. В памяти такая строка занимает те же что и С = число символов в строке + 1 байт в начале, хранящий её длину.

А еще есть строки UNICODE, UTF8, строки типа Паскаль, где длина указана 2-мя байтами (т.е. максимальная длина 65535 символов в строке).

Длина таких строк в байтах может быть очень и очень разной. Совсем не соответствующей числу символов. Разница будет не на 1 байт (как в простых строках типа С и типа Паскаль). Более того, например, в UTF8 длина строки в байтах будет зависеть от того, что именно написано. )))

В наше время я настоятельно рекомендую изучать не простые char, а обратить внимание именно на UNICODE.
А там вовсе не один байт на один символ. )))))

Ответ написан более трёх лет назад
Нравится 9 41 комментарий

В памяти такая строка занимает те же что и С = число символов в строке + 1 байт в начале, хранящий её длину.

Максимальная длина — 255 символов.
А в C максимальная длина — 4294967295 символов (вместимость size_t).

К тому же, благодаря такому устройству, в C-строках можно гулять туда-сюда с помощью указателя.

У вас совершенно не внятное замечание. Ну включим «зануда-mode»:

1. С помощью указателя можно гулять по ЛЮБОЙ строке. Более того, зная сразу, где конец строки без того, что проверять все байты на 0, гулять по строке типа Паскаль проще, чем по строке типа С.

2. Зачем вам на практике 4204067. ? Если речь идет о текстовом редакторе, то там совсем по другому организовано хранение. Не в одной строке.

3. Разве что в примитивных текстовых редакторах можно все запихнуть в одну строку. Но при попытке редактировать в таком редакторе большой файл вы стазу же столкнетесь с большими задержками при самых обычных операциях вставки-удаления символов в/из середину.

4. Если тебе нужно работать со строками такой длины 4204067. то для строки типа Паскаль никто не мешает использовать не 1 (ограничение на максимальную длину 255), а 4 байта для хранения длины. Что? На 3 байта больше приходится тратить оперативной памяти? И это-то при общей длине строки 4 гигабайта? Ты серьезно считаешь это недостатком?

5. Что? В строка типа Паскаль можно хранить на 3 полезных байта меньше? При длине строки 4204067. ты считаешь это важным? Хорошо. Храним строку в структуре — отдельно размер, отдельно указатель на саму строку. В этом случае строка, размер которой определяется не наличием 0 в конце, а длина которой храниться отдельно позволяет хранить строки более длинные на 1 байт. Кому только это надо.

5. То, что ты сразу знаешь длину, а тебе не нужно бегать и считать, ища ноль — преимущество по скорости для многих типовых операций. А если действительно используются возможности по максимуму, то есть работаем с гигантскими строками 4204067. то искать конец строки в такой строке — просто глупо. Лучше знать заранее.

6. В строке нельзя хранить 0. Как показывает практика, если уж речь идет о строках такой длины как 4295967. то это скорее всего уже не обычный текст, а какие-то данные не текстовые, просто хранимые в виде строкоподобного массива, а там запросто и 0 может встречаться внутри строки, что делает невозможно использование обычной строки для хранения таких длинных строк с данными.

7. Вывод: число 4204067. хорошо попонтоваться, что «я знаю такую штуку как size_t», а фактически практической пользы от этого мало.

1. С помощью указателя можно гулять по ЛЮБОЙ строке.

С помощью указателя можно гулять по нескольким строкам, сложенным друг за другом.
В Паскале это всё будет снова молиться на размер одной строки.

2. Зачем вам на практике 4204067. ? Если речь идет о текстовом редакторе, то там совсем по другому организовано хранение. Не в одной строке.

Да базу данных можно хранить так, файловую систему, много чего.

3. Разве что в примитивных текстовых редакторах можно все запихнуть в одну строку.

Я бы не стал так делать, потому что оно не пройдёт тест на огромный файл.

4. Если тебе нужно работать со строками такой длины 4204067. то для строки типа Паскаль никто не мешает использовать не 1 (ограничение на максимальную длину 255), а 4 байта для хранения длины.

Предлагаешь заморачиваться с подбиранием размера, а я вот просто сохраню строку с нуль-символом.
Пока ты будешь размеры подбирать, я уже полпрограммы напишу и буду чаёк попивать.

5. Что? В строка типа Паскаль можно хранить на 3 полезных байта меньше? При длине строки 4204067. ты считаешь это важным?

Да я могу хоть каталог файлов так сохранить один за другим. Маркерная система — это обычная система, которую придумали ещё до C. В данном случае маркер конца данных — нуль-символ. У тебя нет таких навыков, поэтому все мысли только через размер данных идут.

А если действительно используются возможности по максимуму, то есть работаем с гигантскими строками 4204067. то искать конец строки в такой строке — просто глупо.

Конечно, проходить по всей строке с проверками на нуль-символ, — способ неправильный. Зато можно работать с данными напрямую, без заморочек с размером. Можно нарезать их прямо с середины. В любом месте можно встать и поставить начало внутренней строки (подстроки). Вот там есть пример в библиотеке — strtok() — когда строку можно нарезать на слова, сохраняя указатели на них. Можно и интереснее операции делать — ограничений нет. С размером этой возможности нет, там всё тупо и ограничено.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *