首页 > 其他分享 >C语言整数的输出

C语言整数的输出

时间:2022-11-22 16:08:40浏览次数:44  
标签:输出 数字 int 整数 C语言 二进制 八进制 十进制


文章目录

  • ​​一、整数的基本概念​​
  • ​​二、整数的书写​​
  • ​​1、二进制​​
  • ​​2、八进制​​
  • ​​3、十六进制​​
  • ​​4、需要注意的坑​​
  • ​​三、整数的输出​​
  • ​​四、获取视频教程​​
  • ​​五、版权声明​​

一、整数的基本概念

整数是我们生活中常用的数据类型,也是编程中常用的一种数据,C语言用int关键字来定义整数变量(int是 integer 的简写)。

在定义变量的时候,可以加signed、unsigned、short和long四种修饰符。

signed:有符号的,可以表示正数和负数。

unsigned:无符号的,只能表示正数,例如数组的下标、人的身高等。

short:短的,现在主流的64位操作系统下,整数占用内存4个字节,使用 4
个字节保存较小的整数绰绰有余,会空闲出两个字节来,这些字节就白白浪费掉了。在C语言被发明的早期,或者在单片机和嵌入式系统中,内存都是非常稀缺的资源,所有的程序都在尽可能节省内存。

long:长的,更长的整数。

二、整数的书写

一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式。但是,表示一个二进制、八进制或者十六进制数字就不一样了,为了和十进制数字区分开来,必须采用某种特殊的写法,具体来说,就是在数字前面加上特定的字符,也就是加前缀。

1、二进制

二进制由 0 和 1 两个数字组成,使用时必须以0b或0B(不区分大小写)开头。

以下是合法的二进制:

int a = 0b101;      // 换算成十进制为 5
int b = -0b110010; // 换算成十进制为 -50
int c = 0B100001; // 换算成十进制为 33

以下是非法的二进制:

int m = 101010;  // 无前缀 0B,相当于十进制
int n = 0B410; // 4不是有效的二进制数字

请注意,标准的C语言并不支持上面的二进制写法,只是有些编译器自己进行了扩展,才支持二进制数字。换句话说,并不是所有的编译器都支持二进制数字,只有一部分编译器支持,并且跟编译器的版本有关系。

2、八进制

八进制由 0~7 八个数字组成,使用时必须以0开头(注意是数字 0,不是字母 o)。

以下是合法的八进制数:

int a = 015;      // 换算成十进制为 13
int b = -0101; // 换算成十进制为 -65
int c = 0177777; // 换算成十进制为 65535

以下是非法的八进制:

int m = 256;  // 无前缀 0,相当于十进制
int n = 03A2; // A不是有效的八进制数字

3、十六进制

十六进制由数字 0~9、字母 A~F 或a~f(不区分大小写)组成,使用时必须以0x或0X(不区分大小写)开头。

以下是合法的十六进制:

int a = 0X2A;   // 换算成十进制为 42
int b = -0XA0; // 换算成十进制为 -160
int c = 0xffff; // 换算成十进制为 65535

以下是非法的十六进制:

int m = 5A;    // 没有前缀 0X,是一个无效数字
int n = 0X3H; // H不是有效的十六进制数字

4、需要注意的坑

在现实生活和工作中,我们在写十进制数的时候,为了对齐或其它原因,在数值前面加0是无关紧要的,但是,在C语言中,不要在十进制数前加0,会被计算机误认为是八进制数。

三、整数的输出

下表是各种进制整数的输出格式,重点记住第一、二行十进制的输出格式,其它进制整数的应用场景比较少。

C语言整数的输出_八进制

注意一个坑:输出格式控制符的类型最好与变量的类型一一对应,否则会出现意外的后果,示例:

int i=32767;
printf("i %hd,%d\n",i,i);
int j=32768;
printf("j %hd,%d\n",j,j);

输出结果:

i 32767,32767
j -32768,32768 // 得到了意外的输出结果,32768超出了short的取值范围。

%hd用于输出短整数,最大值是32767,可以输出32767,但不能正常的输出32768。

作者:码农有道

标签:输出,数字,int,整数,C语言,二进制,八进制,十进制
From: https://blog.51cto.com/u_13748800/5878188

相关文章

  • C语言for循环
    文章目录​​1、for循环介绍​​​​2、for循环嵌套​​​​3、获取视频教程​​​​4、版权声明​​1、for循环介绍for循环的一般形式为:for(语句1;表达式;语句2){语......
  • C语言for循环和while循环的区别
    文章目录​​1、for循环介绍​​​​2、while循环介绍​​​​3、循环的选择​​​​4、获取视频教程​​​​5、版权声明​​1、for循环介绍for循环的一般形式为:for(语句1......
  • C语言while循环
    文章目录​​1、while循环介绍​​​​2、循环的跳转​​​​3、while循环的应用​​​​4、dowhile循环​​​​4、获取视频教程​​​​5、版权声明​​1、while循环介绍......
  • C语言i++和++i的区别和用法
    文章目录​​1、用于独立的语句中​​​​2、用于表达式中​​​​3、获取视频教程​​​​4、版权声明​​C语言中++是自增运算符,表示操作数自增1;–是自减运算符,表示操作数......
  • C语言字符串
    文章目录​​一、字符串的概念​​​​二、占用内存的情况​​​​三、字符串的初始化​​​​四、字符串与指针​​​​五、字符串的结尾标志​​​​六、字符串的输出​​......
  • C语言数据类型转换
    文章目录​​一、自动类型转换​​​​1、操作数中没有浮点型数据时​​​​2、操作数中有浮点型数据时​​​​3、赋值运算符两侧的类型不一致时​​​​4、右值超出左值类......
  • C语言结构体
    文章目录​​一、结构体的概念​​​​二、结构体变量​​​​三、占用内存的情况​​​​四、结构体的变量名​​​​五、结构体初始化​​​​六、成员的访问(使用)​​​​......
  • C语言格式化输出
    文章目录​​一、格式化输出​​​​1、类型符(type)​​​​2、宽度(width)​​​​3、对齐标志(flags)​​​​4、精度(prec)​​​​二、格式化输出到字符串​​​​三、C语言代......
  • C语言main函数的参数
    文章目录​​一、main函数的参数​​​​二、C程序的规范写法​​​​三、envp参数​​​​四、课后作业​​​​五、获取视频教程​​​​六、版权声明​​程序运行的时候......
  • C语言指针
    1、指针定义  指针是一个变量,它保存的是另一个变量的地址,即​​内存​​位置的直接地址。intptr;//整型变量,ptr+1表示变量值+1;constintptr;//只读变量,和intcon......