long и long long целочисленные типы данных в языке Си.

Тип данных long предназначен для хранения целого числа и занимает как минимум 32 бита (4 байта). В общем похож на int.
Тип данных long long предназначен для хранения целого числа и занимает как минимум 64 бита (8 байт).
Cпецификатора формата:
%ld (или %li) для long
%lld (или %lli) для long long (при предупреждениях помогает %I64d)
%lu для unsigned long
%llu для unsigned long long (при предупреждениях помогает %I64u)
%x (%X большие буквы A-F) шестнадцатеричное представление
%o восьмеричное представление
Диапазон возможных значений:
−2 147 483 648 - 2 147 483 647 для long (значения LONG_MIN и LONG_MAX из limits.h)
−9 223 372 036 854 775 808 - 9 223 372 036 854 775 807 для long long (значения LLONG_MIN и LLONG_MAX из limits.h)
0 - 4 294 967 295 для unsigned long (значение ULONG_MAX из limits.h)
0 - 18 446 744 073 709 551 615 для unsigned long long (значение ULLONG_MAX из limits.h)

// Ввод и вывод long в(из) консоли
#include <stdio.h> // printf() scanf()
int main(){
    long size = 100;
    printf("size = %ld \nInput long \n", size); // Выводим long и приглашение в вводу
    scanf("%ld", &size);   // Вводим long
    printf("%ld \n", size); // Выводим long
    return 0;
}

// Переводит long, long long в строку и обратно
#include <stdio.h> // printf(), sprintf_s()
#include <stdlib.h> // atol(), atoll()
int main(){
    char *str_long = "2111222333"; // Строковое представление long
    char *str_long_long = "-9111222333444555666"; // Строковое представление long long

    long val_long = atol(str_long); // Преобразование строки в long
    long long val_long_long = atoll(str_long_long); // Преобразование строки в long long

    printf("val_long = %ld \n", val_long); // Вывод long
    printf("val_long_long = %lld \n", val_long_long); // Вывод long long

    const int buf_size_long = 12; // Размер буфера для строкового представления long
    const int buf_size_long_long = 23; // Размер буфера для строкового представления long long
    char buf_long[buf_size_long]; // Буфер для long
    char buf_long_long[buf_size_long_long]; // Буфер для long long

    sprintf_s(buf_long, buf_size_long, "%ld", val_long); // Преобразование long в строку
    sprintf_s(buf_long_long, buf_size_long_long, "%lld", val_long_long); // Преобразование long long в строку

    printf("buf_long = %s \n", buf_long); // Вывод long
    printf("buf_long_long = %s \n", buf_long_long); // Вывод long long
    return 0;
}
2023-03-21



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

bool тип данных в языке Си.
Тип данных char в языке Си.
double тип данных языка Си. Число с плавающей точкой с двойной точностью.
Тип данных enum (или перечисление) в языке Си.
float тип данных языка Си.
int целочисленный тип данных языка Си.
long и long long целочисленные типы данных в языке Си.
short тип данных языка Си.
size_t тип данных языка Си.
struct тип данных языка Си.
union или объединение - тип данных в языке Си.
Ключевое слово языка Си _Bool