Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Signed/Unsigned - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что такое stdafx.h и как это отключить? http://www.cyberforum.ru/cpp-beginners/thread524039.html
Пытаюсь скомпилировать простое окно, а visual c++ говорит, что я забыла подключить stdafx.h. Как сделать чтобы visual c++ перестала просить этот файл?
C++ "Индекс имеет нецелый тип" пожалуйста скажите кто нибудь!почему выдает ошибку *индекс имеет нецелый тип* #include <stdafx.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<iostream> using std::cout;... http://www.cyberforum.ru/cpp-beginners/thread524034.html
Структура сравнения контейнера C++
Имеется контейнер multiset<AnsiString, Compare> Compare структура сравнения. Вот, и мне нужно упорядочить строки по увеличению длины и длиной от 5 до 10 символов С увеличением длины понятно, а...
помогите разобраться с LFSR C++
Привет! помогите пожалуйста разобраться с функцией LFSR... у меня есть такой её код: int LFSR() { static unsigned long ShiftRegister=1; ShiftRegister=((((ShiftRegister>>31)...
C++ вывод переменной типа handle в textbox http://www.cyberforum.ru/cpp-beginners/thread523988.html
Добрый вечер =) Для вас всё довольно таки просто, помогите ,пожалуйста, мне - новичку в работе с формами. Суть вопроса: есть переменная типа HANDLE hFile = CreateFile(filename, GENERIC_READ |...
C++ Структура с сhar определенного размера. Как реализовать структуру такого типа: typedef struct _Data { int Num; int Type; int Size; char Data }; подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18026 / 6258 / 427
Регистрация: 30.03.2009
Сообщений: 17,194
Записей в блоге: 27
21.03.2012, 20:32
Цитата Сообщение от Jetu Посмотреть сообщение
Здравствуйте! Стал изучать ЯП C. Не совсем могу понять, что означает Signed и Unsigned (как я понял означает наличие знака(+ либо -) или его отсутствие). Не мог ли бы доходчиво объяснить, что это означает и в какой ситуации используется.
http://www.cyberforum.ru/blogs/18334/blog69.html

Знаковость и беззнаковость означает примерно следующее. Целочисленная переменная занимает в памяти столько-то бит. И эти биты можно трактовать двояко. Либо это беззнаковая величина, и тогда она будет лежать в диапазоне от нуля до +дофига, либо это знаковая величина, и тогда она будет лежать в диапазоне от -дофига/2 до +дофига/2.

Например. Возьмём 32 бита и заполним их единичками. Если данную переменную мы будем трактовать как знаковую, то значение переменной будет равно -1. Но если этот же самый набор битов мы будем трактовать как беззнаковую переменную, то её значение будет равно 4.294.967.295

При компиляции следующих двух строк получится абсолютно одинаковый машинный код:

C
1
2
3
int a = -1;
 
unsigned b = 4294967295u;
Но два последующих кода дадут разный результат сравнения:

C
1
2
3
4
5
6
7
8
9
if (a < 0)
{
  ...
}
 
if (b < 0)
{
  ...
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru