Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
#1

Не могу объяснить, откуда получается именно такое значение

16.11.2015, 19:46. Просмотров 637. Ответов 24
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include "conio.h"
 
int _tmain(int argc, _TCHAR* argv[])
{
    unsigned char j=256;
    int g=~j;
    printf("%i",g);
    getch();
    return 0;
}
код написан, значение выводиться(-1значение), не могу понять почему именно такое значение(
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2015, 19:46
Ответы с готовыми решениями:

Откуда такое решение задачи?
В общем очень простая задача на 2 минуты: В некоторой школе решили набрать три...

Простая и интересная задачка по C++: объяснить почему результат работы программы именно такой, какой он есть
Всем привет, я сам ещё новичок в C++(< 2 лет изучаю), но уже что-то понимаю и...

Почему выводится именно такое количество звездочек?
Здравствуйте! обясните почему в первой программе сначала выводится не 2...

Объяснить от чего зависит размер указателя и что такое арифметика указателей
Уважаемые программисты, возник вопрос. По умолчанию указатель любого типа может...

Пошагово объяснить, что происходит в цикле и как получается указанный результат
Господа, программисты, подскажите дураку почему тут 120 получиться должно?...

24
Velesthau
524 / 426 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
16.11.2015, 19:57 #2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

256 - это 0 при записи в байт (так как оно туда не поместится). not на 0, это все единицы в бинарном коде. То есть, -1.
1
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
16.11.2015, 20:26  [ТС] #3
Velesthau, спасибо, что такое not(нет)?
0
Velesthau
524 / 426 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
16.11.2015, 20:35 #4
sodaily, побитовое отрицание.
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 20:42  [ТС] #5
Velesthau, а откуда минус взялся то?
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
17.11.2015, 20:46 #6
Цитата Сообщение от sodaily Посмотреть сообщение
Не могу объяснить, откуда получается именно такое значение
А какое значение ты ожидаешь?
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 20:47  [ТС] #7
castaway, никакого значения не ожидала, просто нужно было вывести результат и объяснить почему именно так вышло
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
17.11.2015, 20:52 #8
Цитата Сообщение от sodaily Посмотреть сообщение
castaway, никакого значения не ожидала, просто нужно было вывести результат и объяснить почему именно так вышло
А результат - это не значение?
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 20:55  [ТС] #9
castaway, я не так поняла вопрос ваш вопрос. Я не могу объяснить почему именно такой результат получился и с минусом вдобавок, а не 0 или 1 например
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 21:08  [ТС] #10
castaway,необходимо объяснить почему выводиться -1(А не какое то другое значение) и откуда это значение берется? как еще сформулировать я не знаю!!! предыдущий отвечающий все понял!!!
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
17.11.2015, 21:11 #11
Цитата Сообщение от sodaily Посмотреть сообщение
предыдущий отвечающий все понял!!!
Предыдущий отвечающий - телепат, а я - нет.
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 21:12  [ТС] #12
castaway, ты понимаешь почему получился-1? я не понимаю, и я прошу чтобы мне объяснили почему так получилось
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
17.11.2015, 21:16 #13
Цитата Сообщение от sodaily Посмотреть сообщение
castaway, ты понимаешь почему получился-1? я не понимаю, и я прошу чтобы мне объяснили почему так получилось
Я понимаю почему выводится именно это значение, но я не понимаю твоих вопросов.
Спрошу ещё раз. Что по твоему должно выводится?
1
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 21:24  [ТС] #14
castaway, результат вывелся верный, такой какой написан в ответах!но я не понимаю как объяснить почему побитовое отрицание на 256 равняется -1. вопрос ставился: откуда взялся такой результат и почему?

Добавлено через 1 минуту
Цитата Сообщение от castaway Посмотреть сообщение
Что по твоему должно выводится?
это и должно выводиться,я и ожидала - 1
0
castaway
Эксперт С++
4930 / 3037 / 453
Регистрация: 10.11.2010
Сообщений: 11,116
Записей в блоге: 10
Завершенные тесты: 1
17.11.2015, 21:33 #15
Цитата Сообщение от sodaily Посмотреть сообщение
но я не понимаю как объяснить почему побитовое отрицание на 256 равняется -1
Тип unsigned char вмещает значения максимум 255. 256 - это уже переполнение.

Знак %i в printf означает вывод целого знакового числа.

Добавлено через 1 минуту
Цитата Сообщение от sodaily Посмотреть сообщение
это и должно выводиться,я и ожидала - 1
"это" - это что?
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 21:41  [ТС] #16
Цитата Сообщение от castaway Посмотреть сообщение
"это" - это что?
-1..вообщем, вы ничего нового не сказали мне. про переполнение я и без этого знала и про целое я тоже знала. а на вопрос почему же все таки -1 а не 0 или 255 я так от вас объяснения не получила от вас.
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 21:55  [ТС] #17
castaway, если норм не можете по шагам все объяснить то всего доброго и я задала конкретный вам вопрос
Цитата Сообщение от sodaily Посмотреть сообщение
почему же все таки -1 а не 0 или 255?
0
ValeryS
Модератор
7225 / 5486 / 684
Регистрация: 14.02.2011
Сообщений: 18,558
17.11.2015, 22:00 #18
sodaily, ты знаешь что такое "НЕ"(~)?
Что такое дополнительный код?
0
sodaily
0 / 0 / 0
Регистрация: 02.11.2014
Сообщений: 121
17.11.2015, 22:04  [ТС] #19
ValeryS, "НЕ"(~) - побитовое отрицание, заменяющее 1 на 0 и наоборот
0
ValeryS
Модератор
7225 / 5486 / 684
Регистрация: 14.02.2011
Сообщений: 18,558
17.11.2015, 22:06 #20
Цитата Сообщение от sodaily Посмотреть сообщение
"НЕ"(~) - побитовое отрицание, заменяющее 1 на 0 и наоборот
ну а теперь проведи эту операцию со значением 0000 0000
0
17.11.2015, 22:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2015, 22:06

Объяснить что такое "раздельная компиляция", что такое "интерфейс класса" и "реализация класса" на примере
Есть класс, содержащий объекты и конструктор. Конструктор объявляется в одном...

Не могу представить (объяснить)
#include <iostream> char board = {}; void clearscreen(){ for(int i...

Не могу объяснить программу
#include "stdio.h" #include <iostream> #include <string.h> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru