2 / 2 / 1
Регистрация: 26.06.2010
Сообщений: 37
1

Определение диапазонов переменных типов char, short, int и long (как signed, так и unsigned)

26.06.2010, 16:05. Показов 12645. Ответов 4
Метки нет (Все метки)

Напишите программу для определения диапазонов переменных типов char, short, int и long (как signed, так и unsigned) путем вывода соответствующих значений из заголовочных файлов, а также с помощью непосредственного вычисления. Для второго способа усложним задачу: определите еще и диапазоны вещественных чисел
Вроде до этого все читал внимательно, задание понимаю, как реализовать - не знаю.

С только начал изучать
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2010, 16:05
Ответы с готовыми решениями:

Размер для данных (int, char, long, double, short, unsigned, float)
Напишите программу, которая будет определять размер для данных (int, char, long, double, short,...

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека...

Создать объединение, что содержит элементы типов char int short fload long string
всем доброго времени суток! мне нужно создать объединение, что содержит элементы типов char int...

Значения типов данных (signed, unsigned, char)
Програмирую я месяца два,но не понимаю значения типов данных : signed, unsigned, char...Помогите..

4
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11707 / 7214 / 1710
Регистрация: 25.07.2009
Сообщений: 13,214
26.06.2010, 16:37 2
для затравки
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <limits.h>
 
int main(void){
    printf("Type                Size      Min                 Max\n----------------------------------------------------------------------\n");
    printf("%-20s%-10d%-20ld%-20ld\n", "char", sizeof(char), CHAR_MIN, CHAR_MAX);
    printf("%-20s%-10d%-20u%-20u\n", "unsigned char", sizeof(char), 0, UCHAR_MAX);
    printf("%-20s%-10d%-20d%-20d\n", "short", sizeof(short), SHRT_MIN, SHRT_MAX);
    printf("%-20s%-10d%-20u%-20u\n", "unsigned short", sizeof(short), 0, USHRT_MAX);
    printf("%-20s%-10d%-20d%-20d\n", "int", sizeof(int), INT_MIN, INT_MAX);
    printf("%-20s%-10d%-20u%-20u\n", "unsigned int", sizeof(int), 0, UINT_MAX);
    printf("%-20s%-10d%-20ld%-20ld\n", "long", sizeof(long), LONG_MIN, LONG_MAX);
    printf("%-20s%-10d%-20lu%-20lu\n", "unsigned long", sizeof(long), 0, ULONG_MAX);
    return 0;
}
2
2 / 2 / 1
Регистрация: 26.06.2010
Сообщений: 37
26.06.2010, 19:57  [ТС] 3
Благодарю.
А под определением диапазонов с помощью непосредственного вычисления понимается что-то вроде этого, так?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
 
int main(void)
{
    unsigned char uc;
    char c;
    int i, min, max;
 
 
 
    for (uc = 1; uc != 0; ++uc)
    {
        min = 0;
        max = uc;
    };
    printf ("unsigned char: min: %d max: %d \n", min, max);
 
 
 
    for (c = 1; c > 0; ++c)
    {
        max = c;
    };
    min = c;
    printf ("char: min: %d max: %d \n", min, max);
 
 
 
    for (i = 1; i > 0; ++i)
    {
        max = i;
    };
    min = i;
    printf ("int: min: %d max: %d \n", min, max);
 
    return 0;
}
есть подозрения, что код - далеко не самый рациональный, так что, подправьте
0
39 / 39 / 9
Регистрация: 05.01.2013
Сообщений: 305
Записей в блоге: 3
22.09.2013, 19:56 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <limits.h>
 
int 
main ()
{
  printf("Size of Char %d\n", CHAR_BIT);
  printf("Size of Char Max %d\n", CHAR_MAX);
  printf("Size of Char Min %d\n", CHAR_MIN);
  printf("Size of int min %d\n", INT_MIN);
  printf("Size of int max %d\n", INT_MAX);
  printf("Size of long min %ld\n", LONG_MIN);      
  printf("Size of long max %ld\n", LONG_MAX);    
  printf("Size of short min %d\n", SHRT_MIN);
  printf("Size of short max %d\n", SHRT_MAX);
  printf("Size of unsigned char %u\n", UCHAR_MAX);  
  printf("Size of unsigned long %lu\n", ULONG_MAX); 
  printf("Size of unsigned int %u\n", UINT_MAX);    
  printf("Size of unsigned short %u\n", USHRT_MAX);
 
  return 0;
}
0
7 / 8 / 9
Регистрация: 15.07.2015
Сообщений: 56
17.07.2015, 17:20 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
 
main()
{   
short int unsigned i=1;//меняйте тип чтобы узнать лимиты для каждого.
long long int unsigned cache=0;
 
while(1){
   if(!(i > cache)){printf("Max: %d",cache);break;}
   else
   {cache=i;}
i++;
}  
getch();   
}
В данном случае чтобы вывести
C
1
printf("%d",INT_MAX);
нужно указать
C
1
#include <limits.h>
Добавлено через 13 минут
Для вещественного:
Для float только, другие вычислить не может(слишком большие значения?!, попробуйте подождать)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
 
main()
{   
float i=1.0;//Types: float only.
double cache=0.0;
 
while(1){
   if(!(i > cache)){printf("Max: %.0f",cache);break;}
   else
   {cache=i;}
i++;
}  
 
getch();   
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2015, 17:20
Помогаю со студенческими работами здесь

Тип char.Signed/unsigned.Отличие типов данных.
Вопрос немного может быть не туда... Прошу прощения. Пишу прошивку к контроллеру, на С. Интересует...

Перевести long long unsigned int в массив char
Подскажите, пожалуйста, как превратить число типа long long unsigned int в массив символов? Каждый...

Надо перевести переменную типа unsigned char* в signed int и обратно
у меня есть переменная типа unsigned char*, мне нужно перевести ее в signed int , провести...

Char, short, int, long: какой тип выбрать?
Всем привет Читая книги по C++ столкнулся с тем, что везде пишут примерно одно и тоже. Допустим...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru