Заблокирован
|
|
1 | |
Почему макс short int равен 65535?27.12.2016, 12:04. Показов 3973. Ответов 15
Метки нет (Все метки)
Делаю sizeof() получаю 4 байта
1байт=8бит те 4байта=32 бита но бит это 0 или 1 таки образом есть последовательность из 0 и 1 длиной 32 символа но максимальная вариативность равна 34в квадрате те 1024 куда сохраняются недостающий диапазон?
0
|
27.12.2016, 12:04 | |
Ответы с готовыми решениями:
15
Почему такой вывод (sizeof(short + short) - 4) В чем разница между long int и short int Разница int, short, unsigned int, unsigned short short int и short |
Вездепух
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
|
|
27.12.2016, 12:16 | 2 |
sizeof чего именно?
Последовательность из 32 битов. О чем речь? Откуда взялось 34 в квадрате? Ничего не ясно. И при чем здесь вообще short int?
0
|
Заблокирован
|
|
27.12.2016, 12:25 [ТС] | 3 |
TheCalligrapher, typedef short int aaa; sizeof(aaa);
вот именно те max aaa = 111111111111111111111111111111111 но весь диапазон чисел который может быть передан 32 еденицами и нулями 1024 те bin 1(*32) = dec 1024 же или я где то не прав? ошибся, сообщение отредачил но поздно видимо 32.32=8*4 ну в принципе не причём можно int взял для примера ------------------- те меня интересует откуда взялось число 65535
0
|
Вездепух
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
|
|
27.12.2016, 12:32 | 4 |
Это на какой платформе? Обычно sizeof(short int) == 2. Но sizeof(short int) == 4 - не запрещается.
Беззнаковый диапазон 32 битов: от 0 до 232 = 4294967296 Знаковый: от -231 = -2147483648 до 231-1 = 2147483647 Диапазон беззнакогового unsigned short int размером 2 байта: от 0 до 65535. Оттуда и вязлось. Но если у вас sizeof(short int) == 4, то к вам это число не относится. Скорее воспрос в том, где вы взяли ваше 1024.
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||||
27.12.2016, 12:40 | 7 | |||||
Размер short int зависит от системы.
Можно узнать размер и диапазон значений вот так:
Код
2 -32768 32767 Возьмём 16 бит. Один будет отвечать за знак. С помощью оставшихся мы можем получить комбинаций, что равно 32768. Учтём, что под ноль тоже надо место. Получим искомый диапазон [-32768, 32768)
0
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
27.12.2016, 12:44 | 9 |
short int bytes(2) values: -32 768 / 32 767
unsigned short int bytes(2) values: 0 / 65 535
0
|
Заблокирован
|
|
27.12.2016, 12:53 [ТС] | 11 |
Maxim Prishchepa, ну да, забыл про беззнаковость... но в таком случае вопрос,- при объявлении переменных выделяется область памяти без очищения, а при выделении серии переменных память выделяется последовательно или как комп захочет те объявив стопиццот перменных я получу все данные находящиеся в оперативке?
Добавлено через 1 минуту MrGluck, я оч стар для плюсов я помню только то что программировал на кирилице
0
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
27.12.2016, 12:54 | 12 |
а это уже от ОС зависит, как ей в голову вздумается вам дать память, так и даст
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
27.12.2016, 12:55 | 13 |
Так тему вы создали в разделе С++.
Можете не вникать в синтаксис кода, там вполне говорящие названия у функций. Не важно какой это язык, можно догадаться что должен делать данный код.
1
|
Заблокирован
|
|
27.12.2016, 13:00 [ТС] | 14 |
MrGluck, я так и делал пока не столкнулся с полным непониманием,- ну задаю вроде понятный вопрос но в ответ читаю какюто дичь(не на форе на "вопроснике для программистоф")... вот и решил прочитать чтонить ну хоть новое узнал про блоки кода те {} не только тело функции\условия
0
|
Вездепух
11696 / 6375 / 1724
Регистрация: 18.10.2014
Сообщений: 16,071
|
|
27.12.2016, 13:02 | 15 |
В традиционных современных ОС используется виртуальная память. Переменные располагаются в виртуальном адресном пространстве процесса, а на физическую "оперативку" проецируются непредсказуемым образом. Поэтому что вы там увидите в своих стопиццот переменных - предсказать невозможно.
Это не говоря уже о том, что доступ к неинициализированной переменной в С не гарантирует никакого чтения из памяти.
0
|
Заблокирован
|
|
27.12.2016, 13:16 [ТС] | 16 |
TheCalligrapher, ну это я для общего развития интересовался... ну и тогда ещё вопрос,- для локальных переменных память выделятся же каждый раз? те можно создать реальный рандом?
ну для реала же, в виртуалках он всегда будет равен нулю
0
|
27.12.2016, 13:16 | |
27.12.2016, 13:16 | |
Помогаю со студенческими работами здесь
16
short vs int Почему в консоле выводится 65535, а не 0? Размер указателя short int Преобразование 2-х char в один short int Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |