C语言整型知识

C语言学习6:数据类型 -> 基本类型 -> 整型类型(int、short int、long int、char等) 对各种整型类型进行详细介绍 阅读详情

初入C语言,有理解错误或不正确请多指教、纠正!

C语言整型int是英文integer的缩写,int分为有符号(signed)和无符号(unsigned)整型。

C语言整型有如下:

一、有符号

  • 1、signed char 可简化为 char
  • 2、signed short int 可简化为 short
  • 3、signed int 可简化为 int
  • 4、signed long int 可简化为 long
  • 5、signed long long int 可简化为 long long

二、无符号

  1. unsigned char
  2. unsigned short int 可简化为 unsigned short
  3. unsigned int
  4. unsigned long int 可简化为 unsigned long
  5. unsigned long long int 可简化为 unsigned long long

虽然完整写法比较麻烦,不过意义明确。

三、注意点

  1. 上面类型越往下的类型取值范围越大,不能把大的数值往小的类型装,会导致数据不正确
  2. 类型所占用的字节数不同的编译器、平台会有差别。如int在16位系统占用2个字节,在32、64位一般占用4个字节。另外long在windows只占用4个字节,在类Unix中long占用8个字节
  3. 一个字节(Byte)有8个二进制位(Bit),即 1Byte=8Bit
  4. 有符号整型二进制的最高位为符号位,0表示正数,1表示负数。因此有符号一个字节只有7个二进制位是数据位(取值范围计算方法:-2^7~2^7-1,为什么是7次方而不是8次方?因为二进制最高位是符号位。为什么正数要减1呢?因为正数范围多了一个0)
  5. 无符号整型所有二进制位全部是数据位(取值范围计算方法:0~2^8-1,为什么正数要减1呢?因为正数范围多了一个0)
  6. 类型具体占用多少字节可用sizeof关键进行查询
  7. 可引入limits.h头文件,打印输出各类型最小取值、最大取值范围(具体看代码段)

四、各类型取值范围(以windows10系统64位为例) 

  •         signed char      -> -2^7-1  至 2^7-1   即 -128 至 127
  •         signed short     -> -2^15-1 至 2^15-1  即 -32768 至 32767
  •         signed int       -> -2^31-1 至 2^31-1  即 2,147,483,648 至 2,147,483,647
  •         signed long      -> -2^31-1 至 2^31-1  即 2,147,483,648 至 2,147,483,647
  •         signed long long -> -2^63-1 至 2^63-1  即 9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
  •         unsigned char      -> 0  至 2^8-1   即 0 至 255
  •         unsigned short     -> 0  至 2^16-1  即 0 至 65535
  •         unsigned int       -> 0  至 2^32-1  即 0 至 4,294,967,295
  •         unsigned long      -> 0  至 2^32-1  即 0 至 4,294,967,295
  •         unsigned long long -> 0  至 2^64-1  即 0 至 18,446,744,073,709,551,615 

#include <stdio.h>
#include <limits.h> //各类型的最大取值范围和最小取值范围定义头文件
/*
    1、整型可分为char、short、int、long、long long,越往后取值范围越大
    2、还可以上面的关键字前面加另外两个修饰符指定是有符号还是无符号整型:unsigned(无符号)、signed(有符号、默认不加就是有符号),规范写法建议写上
    3、每个编译器和平台,整型所占用的字节可能不一样。早期16位系统int只占2个字节。现在32位编译器int占用4个字节
    4、一个字节(Byte)等于8位(bit)二进制
    5、用sizeof关键字可测量类型、变量、常量等所占用的字节
    6、有符号signed在二进制的最高位作为符号位,0表示正数,1表示负数
    7、各类型取值范围计算方法为:有符号-2^(n-1)到2^(n-1)-1,无符号0到2^n-1。其中n代表占用字节数乘以8。
        a、为什么有符号n要减1呢?因为二进制最高位是符号位
        b、为什么正数要减1呢?因为正数范围多了一个0
*/
int main(){
    
    printf("---------signed integer-----------\n");
    printf("signed char size = %d Byte\n", sizeof(signed char)); //char 等同于signed char写法,后面这种更加明确规范。下面同理
    //printf("signed short size = %d Byte\n", sizeof(signed short)); // %d其中d是英文decimal的缩写,中文是十进制的意思
    printf("signed short int size = %d Byte\n", sizeof(signed short int));
    printf("signed int size = %d Byte\n", sizeof(signed int));
    //printf("signed long size = %d Byte\n", sizeof(signed long));
    printf("signed long int size = %d Byte\n", sizeof(signed long int));
    //printf("signed long long size = %d Byte\n", sizeof(signed long long)); 
    printf("signed long long int size = %d Byte\n", sizeof(signed long long int)); 
    //有符号各类型取值范围
    /*
        signed char      -> -2^7-1  至 2^7-1   即 -128 至 127
        signed short     -> -2^15-1 至 2^15-1  即 -32768 至 32767
        signed int       -> -2^31-1 至 2^31-1  即 2,147,483,648 至 2,147,483,647
        signed long      -> -2^31-1 至 2^31-1  即 2,147,483,648 至 2,147,483,647
        signed long long -> -2^63-1 至 2^63-1  即 9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
    */
   //验证输出各类型最小取值范围和最大取值范围
   printf("------\n");
   printf("signed char min: %d max: %d\n", CHAR_MIN, CHAR_MAX);
   printf("signed short int min: %d max: %hd\n", SHRT_MIN, SHRT_MAX);
   //printf("signed short min: %d max: %hd\n", SHRT_MIN, SHRT_MAX);
   printf("signed int min: %d max: %d\n", INT_MIN, INT_MAX);
   printf("signed long int min: %ld max: %ld\n", LONG_MIN, LONG_MAX);
   //printf("signed long min: %ld max: %ld\n", LONG_MIN, LONG_MAX);
   printf("signed long long int min: %lld max: %lld\n", LONG_LONG_MIN, LONG_LONG_MAX);
   //printf("signed long long min: %lld max: %lld\n", LONG_LONG_MIN, LONG_LONG_MAX);

    printf("---------unsigned integer-----------\n");
    printf("unsigned char size = %d Byte\n", sizeof(unsigned char));
    //printf("unsigned short size = %d Byte\n", sizeof(unsigned short));
    printf("unsigned short int size = %d Byte\n", sizeof(unsigned short int));
    printf("unsigned int size = %d Byte\n", sizeof(unsigned int));
    //printf("unsigned long size = %d Byte\n", sizeof(unsigned long));
    printf("unsigned long int size = %d Byte\n", sizeof(unsigned long int));
    //printf("unsigned long long size = %d Byte\n", sizeof(unsigned long long));
    printf("unsigned long long int size = %d Byte\n", sizeof(unsigned long long int));
    //无符号各类型取值范围
    /*
        unsigned char      -> 0  至 2^8-1   即 0 至 255
        unsigned short     -> 0  至 2^16-1  即 0 至 65535
        unsigned int       -> 0  至 2^32-1  即 0 至 4,294,967,295
        unsigned long      -> 0  至 2^32-1  即 0 至 4,294,967,295
        unsigned long long -> 0  至 2^64-1  即 0 至 18,446,744,073,709,551,615
    */
   //验证输出无符号各类型最小取值和最大取值范围
   printf("------\n");
   printf("unsigned char min: %d max: %u\n", 0, UCHAR_MAX);
   printf("unsigned short int min: %d max: %u\n", 0, USHRT_MAX);
   //printf("unsigned short min: %d max: %u\n", 0, USHRT_MAX);
   printf("unsigned int min: %d max: %lu\n", 0, UINT_MAX);
   printf("unsigned long int min: %d max: %lu\n", 0, ULLONG_MAX);
   //printf("unsigned long min: %d max: %lu\n", 0, ULLONG_MAX);
   printf("unsigned long long int min: %d max: %llu\n", 0 ,ULONG_LONG_MAX);
   //printf("unsigned long long min: %d max: %llu\n", 0 ,ULONG_LONG_MAX);
   
    return 0; //返回给操作系统内核,返回0说明程序正常退出
}

C语言基础知识总结(一)整型、浮点型数据在内存中的存储 C语言基础类型的基本介绍及归类,整型浮点型在内存中的存储,原码、反码、补码,大小端。 阅读详情

相关推荐

C语言:数据类型之整形(一)

什么是数据? 记录一天各个时间的温度,那么这个温度就是数据.记录一个水库水位的变化值,那么这个值就是数据. 什么是数据类型? 12 15 是整数 12.23是小数 "hello world"是一段话 基本数据类型: 数值类型:整形,浮点型。 整形顾名思义就是整数,像:1,2,3,4,5就是整形 整形在C语言的关键字是:int 那么整形怎么输出呢? #include <strio.h>//包含标准库头文件 int main(void)//主函数 { //打印12

m0_62599305的博客 5004

C语言(二)— 整型

编程进阶— C语言(一)— 变量和数据类型 整型 在C语言中,整型数据一般用short、int、long三种数据类型来声明,int是C语言中常用的声明整形数据的数据类型,在现代的操作系统中,一般是占4字节(Byte)即32位(Bit),4字节可以存储很大的数值,为了节省空间,避免造成不必要的浪费,对于较小的数据,可以用short int来声明,也可以省略int;对于太大的数据,可以用long int来声明,也可以省略int。 int 是基本的整数类型,short 和 long 是在 int 的基础上进行的扩

qq_44715649的博客 8761

Abaqus CEL分析必备:Hypermesh网格导出与inp文件合并技巧

本文详细介绍了在Abaqus CEL分析中使用Hypermesh生成六面体网格并合并多组件inp文件的完整流程。从单元类型设置(EC3D8R)、网格质量优化到inp文件合并技巧,提供了一套解决流固耦合仿真前处理痛点的实战方案,帮助工程师高效完成复杂CEL分析任务。

weixin_29279101的博客 213

C语言数据存储 — 整型篇

在C语言中,了解相关数据存储对一名优秀程序员来说是至关重要的!通过相关原理,从而更加深入地理解计算机如何存储和操作数据,这对于编程人员来说是非常重要的。只有深入理解计算机存储和操作数据的原理,才能编写出更加高效、可靠的程序。本文将详细介绍C语言中整型数据是如何存储的,希望能帮助读者在编程路上更近一步!!使用这个类型开辟内存空间的大小(大小决定了使用范围)如何看待内存空间的视角大端(存储)模式又称大端字节序存储:数据的低位字节中的数据存放在高地址处,高位字节中的数据存放在低地址处。

Zhenyu_Coder的博客 1875

安装matlab_Matlab+yalmip+cplex安装教程及算例

数学建模/科研学习推荐学习软件:Matlab+yalmip+cplex安装教程及算例其实绝大多数本科生都是在用Matlab和LINGO求解优化问题,Matlab可以求解一般优化问题,但是当优化问题规模比较大或者在应对一些非线性问题时候,Matlab会出现求解时间长,求解效率低,甚至难以求解等问题。Matlab+yalmip+cplex是Matlab通过调用商业软件cplex求解,求解时间短,这里简...

weixin_28939637的博客 5006

手把手教你用Three.js+Vue打造3D机房可视化系统(附完整代码)

本文详细介绍了如何使用Three.js与Vue 3构建企业级3D机房可视化系统。从技术选型、项目架构设计到3D场景构建、设备建模与渲染策略,提供了完整的开发方案和实战代码。重点讲解了如何实现设备状态实时监控、交互操作与性能优化,帮助开发者快速掌握3D可视化开发的核心技术。

ttt77的博客 317

C语言学习5(整形,浮点型,字符型,布尔类型,数据类型计算大小,数据类型转换)

整形,浮点型,字符型,布尔类型,数据类型计算大小,数据类型转换

m0_61391350的博客 1642

JMeter 压测实战全教程

脚本结构:测试计划 → 线程组 → HTTP 请求 → 监听器运行方式:图形化调试,命令行生产压测核心指标:QPS、RT、错误率、CPU、GC。

weixin_48309090的博客 652

C语言小知识_用代码搞懂隐式类型转换里的整型提升

#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { char a = 3; //3的二进制表示为 //000000000000000000000000000000000011 //4字节(int整数的大小)-->1字节(char字节的大小) //00000011 //整型提升:按符号位提升(0则前面补0) //00000000000000000000000.

aiqq136的博客 161

高效数据迁移:ICCAP到ADS的数据导入与导出实战指南

本文提供了从ICCAP到ADS进行高效、准确数据迁移的实战指南。针对射频与微波电路设计中的关键挑战,详细阐述了迁移前的战略规划、ICCAP数据的精细化导出(包括脚本化批处理)、ADS数据的多种导入方法(如Data Items、DML模型库及编程化API),并强调了数据完整性与准确性验证的重要性,确保模型参数和仿真结果在平台间可靠传递。

weixin_29291185的博客 132

机器人在果园内行巡检仿真(2D雷达、realsense相机)

DiffBot是一种具有两个轮子的自主差动驱动机器人。它的主要处理单元是一个运行Ubuntu Mate 20.04和ROS 1 (ROS Noetic)中间件的Raspberry pi4b。该存储库包含ROS驱动包、真实机器人的ROS控制硬件接口和模拟DiffBot的配置。修改配置文件orchard_world.launch。

如果想成为中心,那么就到中心去吧。 1311

C语言知识点——整型提升

在学习C语言的过程中,对于表达式求值运算的环节不仅要掌握基础运算方法,还应该了解其底层运算逻辑,其中整型提升是一个很重要的知识点,学习中容易忽略,故作此总结,为后期深度学习打牢基础。...

hanshengzewoaini的博客 1549

133.在 Vue3 中使用 OpenLayers 实现画多边形、任意编辑、遮罩与剪切处理功能

《Vue3+OpenLayers实现多边形绘制与区域处理》摘要:本文介绍如何基于Vue3+OpenLayers+ol-ext实现地图多边形交互功能。核心功能包括:鼠标绘制任意多边形、拖动顶点编辑边界、遮罩显示(非选区变红)、选区剪切显示及功能重置。技术方案采用OpenLayers处理地图渲染,ol-ext实现高级遮罩/剪切效果,ElementPlus提供UI控件。该方案适用于城市规划、园区展示等需要区域标记的场景,完整代码展示了从初始化、绘制、编辑到特效处理的全流程实现。

小彭的博客 959

最初c语言用整型代表真,c语言基础知识

补码相加时候如果结果 进位了 要把进位的那个丢掉。-23的8位二进制补码是11101001正数前面加0负数前面加1整形实形 字符 数组 指针 结构体变量必须先定义后使用。#include void main(){int a;a = 10;int b;}基本整形:int2个字节短整型:short int2个字节长整形:long int4个字节无符号整形:unsigned int 2个字节...

weixin_34474759的博客 498

Python 爬虫实战:爬取今日头条文章与阅读量数据

本文详细介绍了基于Python爬取今日头条文章与阅读量数据的完整方案。通过分析今日头条API接口,采用Requests+正则表达式技术实现数据抓取,重点解决加密参数构造、请求头模拟、反爬规避等核心问题。文章包含文章列表获取、详情数据提取、互动数据采集等完整流程,并提供数据存储与基础分析方法。同时强调合规使用爬虫技术,控制爬取频率,避免干扰平台运营。该方案可为内容传播分析、用户兴趣研究提供数据支持,但需注意接口参数更新和反爬机制变化,适时调整代码实现。

2503_91057718的博客 2519

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

c语言无符号整型 一直累加 溢出_c语言程序设计知识点

学习C语言程序设计都会用到高等数学知识和计算机基础理论知识。使用可变参数应该有以下步骤:1)首先在函数里定义一个va_list型的变量,这里是arg_ptr,这个变量是指向参数的指针。2)然后用va_start宏初始化变量arg_ptr,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。3)然后用va_arg返回可变的参数,并赋值给整数j. va_arg的第二个参数是你要...

weixin_34230075的博客 1765

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C语言知识:整型在内存中的存储

C语言新手知识:整型在内存中的存储

sa6fa5s6f的博客 274

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C语言:基础知识(整型常量,实型常量)

C语言:基础知识(整型常量,实型常量)

weixin_73011353的博客 1633

最初c语言用整型代表真,C语言常用的知识没多少之C语言的入门

C语言自1972年问世以来,历经40多年而不衰。现在依旧在机器语言排行榜中排名前三,可见C语言的重要性!C语言既是高级语言,也是少有的面向过程的语言。学习C语言不像其它面向对象语言那样需要理解什么是类、对象、派生、继承、多态等的意思。它更与现实生活中的方方面面相结合。所以学习C语言的过程中可以类比生活中某些问题的解决过程去学习,这样有利于C语言的学习。很多没有接触计算机内部(如计算机是如何计算和显...

weixin_39784460的博客 129

C语言冷知识:整型字面值都是非负数,但这个非负数的类型可以是有符号的整型

一切源于《深入理解计算机系统(第三版)》中第二章的一个小问题…… C语言的有符号整型最小值定义 为什么要用 (-INT_MAX - 1)呢?为什么不直接用字面值-2147483648? 因为字面值-2147483648是由有符号数2147483648加上单目运算符“-”组成的 负号和数字并非是一体的,编译器会先解析数字,再给数字施加负号运算 这样一来,因为int不足以表示字面值2147483648,所以字面值2147483648的类型会是long 最终导致-2147483648的类型也.

weixin_41973774的博客 956

C语言中整型和bool的转换,bool和BOOL类型知识集合

知识点一、C语言中有bool类型吗?之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义。用了这么久的C和C++了,一直觉得bool这种基本类型,应该是C语言内置的类型,怎么会没有定义呢?事实证明,我的想法完全错误了。有了网络,一切问题都变得那么容易了,我很容易地搜到了相...

weixin_28783097的博客 3175

c语言浮点型常量表示平均数_小白基础知识必备|| 整型常量与进制间的转换

一、C语言关键字C语言的关键字共有32个,根据关键字的作用,可分为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。数值类型关键字(12个)void、char、short、int、long、float、double、signed、unsigned、struct、enum、union控制语句关键字(12个)if、else、switch、case、default、break、for、do...

weixin_39830588的博客 226

c语言定义四个整型查表的数,C语言知识点速查表

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?对应数学中的概念特性变量x、y等未知数值可以被修改常量系数、常数项等有确定值的数值不可以修改重点考察:常量不可被修改哪些是合法的字符常量变量命名怎样才是合法的C语言中对大小写敏感,所以A和a可以命名不同的变量基本数据类型类型包括输入输出时使用备注字符型char%c %s(字符串/字符数组)本质上...

weixin_42520580的博客 444

C语言知识点精细详解——数据类型和变量【2】——整型变量与常量【1】

全方位了解基本数据类型中整型的种种细节,变量和常量,有符号数和无符号数的区别。

qq_67611811的博客 5293

C语言整型、浮点型、字符型变量核心知识点,小白看过来

#探寻人工智能,人与AI全新序章### 一、概述C语言最基础、最常用的三种基本数据类型:**整型(int)、浮点型(float/double)、字符型(char)**。

clerly的博客 221
上一篇: C语言初步基本知识了解
下一篇: 二进制(一):由来及简介
sgbl888
博客等级 码龄9年 44粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值