c语言整形符号位_C语言常量

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 19:34   1462   0

8b403ef663bb4872c13ce188c8998110.png

常量就是其值在程序运行过程中不可以改变的量。常量可以分为三大类:数值型常量(包括整型常量和实型常量)、字符型常量、符号常量


一、整型常量

整型常量就是直接使用的整型常数整型常量可以是双长整型、长整型、短整型、符号整型和无符号整型

取值范围参考:

C语言各数据类型所占字节数zhuanlan.zhihu.com
c6d00f576fb1f4609440ba5e4c4106f9.png

在编写整型常量时,可以在常量的后面加上符号LL、L或者U进行修饰。LL表示该常量是双长整型,L表示该常量是长整型,U表示该常量为无符号整型,LL、L和U可以使用大写,可以使用小写。

整型常量可以通过三种形式进行表达,分别为八进制形式、十进制形式、十六进制形式。

1. 八进制整数

要使得使用的数据表达形式是八进制,需要在常数前加上0进行修饰,八进制所包含的数字是0~7。

2. 十进制整数

十进制是不需要在其前面添加前缀的,十进制中所包含的数字为0~9。

3. 十六进制整数

常量前面使用0x或0X作为前缀,表示该常量是用十六进制进行表示的。十六进制中包含数字0~9以及字母A~F,其中字母A~F可以使用大写形式,也可以使用小写形式。

这些整数都是以二进制的方式存放在计算机的内存之中,其数值是以补码的形式进行表示的。一个正数的补码与其原码的形式相同,一个负数的补码是将该数绝对值的二进制形式按位取反再加1。

对于有符号整数,其在内存中存放的最左边一位表示符号位,如果该位为0,则说明该数为正;若为1,则说明该数为负。

二进制的原码、反码、补码zhuanlan.zhihu.com
a33fc99411e23f46c8a7c7f12f97f228.png
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    printf("长整形常量:%ldn", 1000L); /*L表示长整形*/
    printf("双长整形常量:%lldn", 1000LL); /*LL表示长整形*/
    printf("无符号整形常量:%un", 500U); /*U表示无符号整形*/

    printf("八进制整数:%o,转为十进制为:%dn", 0123, 0123); /*在常数前面加上一个0来代表八进制*/
    printf("十进制整数:%dn", 123);
    printf("十六进制整数:%x,转为十进制为:%dn", 0x3ba4, 0x3ba4); /*加上前缀0x表示常量为十六进制*/

    return EXIT_SUCCESS;
}

运行结果:

0c44cc11a062bba65157add701f589e7.png
整型常量

源码地址:https://github.com/Hyacinth-fjk/CombinedLanguageIntroduction/blob/master/3.C%E8%AF%AD%E8%A8%80%E5%B8%B8%E9%87%8F/integer_constants.c


二、实型常量

实型常量也称为浮点型,由整数部分和小数部分组成,并用十进制的小数点进行分隔。表示实型的方式有科学计数方式和指数方式两种。

1. 科学计数方式

科学计数方式就是使用十进制的小数方式描述实型。

2. 指数方式

有时,实型非常大或者非常小,使用科学计数方式是不利于观察的。这时,可以用指数方式显示实型常量。其中, 使用字母e或者E进行指数显示,如45e2表示的就是4500,而45e-2表示的就是0.45。

在编写实型常量时,可以在常量后面加上符号F或者L进行修饰,F表示该常量是float单精度类型,L表示该常量为long double长双精度类型

如果不在后面加上后缀,那么默认状态下,实型类型常量为double双精度类型

#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int main(void)
{
    printf("科学计数方式:%fn", 123.45); /*科学计数法*/
    printf("指数方式:%en", 5.458e-1); /*指数方式显示*/

    printf("单精度类型:%g,精度为:%dn", 1.2345e2F, FLT_DIG); /*单精度类型*/
    printf("双精度类型:%lg,精度为:%dn", 1.2345e2, DBL_DIG); /*双精度类型*/
    printf("长双精度类型:%Lg,精度为:%dn", 5.458e-1L, LDBL_DIG); /*长双精度类型*/

    return EXIT_SUCCESS;
}

运行结果:

f8aa3e995a4dade318479e993fb7cf75.png
实型常量

源码地址:https://github.com/Hyacinth-fjk/CombinedLanguageIntroduction/blob/master/3.C%E8%AF%AD%E8%A8%80%E5%B8%B8%E9%87%8F/real_constant.c


三、字符常量

字符型常量与之前所介绍的常量有所不同,即要对其字符型常量使用指定的定界符进行限制。字符型常量可以分成两种:一种是字符常量,另一种是字符串常量。

1. 字符常量

使用单引号括起一个字符,这种形式就是字符常量。在这里,需要注意一下几点:

(1)字符常量只能包括一个字符

(2)字符常量是区分大小写的;

(3)''这对单引号代表着定界符,不属于字符常量中的一部分。

2. 字符串常量

字符串常量是用一组双引号括起来的若干字符序列。如果字符串中一个字符都没有,将其称作空串,此时字符串的长度为0。

在C语言中存储字符串常量时,系统会在字符串的末尾自动加一个“0”,作为字符串的结束标志。

在程序中编写字符串常量时,不必在字符串的结尾处加上“0”结束字符,系统会自动添加结束字符

3. 字符常量和字符串常量区别

(1)定界符的使用不同。字符常量使用的是单引号,而字符串常量使用的是双引号;

(2)长度不同。字符常量只能有一个字符,也就是说字符常量的长度就是1。字符串常量的长度可以是0,也可以是任意数,即使字符串常量中的字符数量只有一个,长度也不是1。

(3)存储的方式不同,在字符常量中存储的是字符的ASCII码值;而字符串常量中,不仅要存储有效的字符,还要存储结尾处的结束标志“0”。

在C语言中,所使用的字符被一一映射到一个表中,这个表称为ASCII码表。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    putchar('H'); /*输出字符常量H*/
    putchar('e'); /*输出字符常量e*/
    putchar('l'); /*输出字符常量l*/
    putchar('o'); /*输出字符常量o*/
    putchar('n'); /*进行换行*/

    printf("What a nice day!n"); /*输出字符串*/

    return EXIT_SUCCESS;
}

运行结果:

50ff338948fb7158161ccd8a51c100e4.png
字符型常量

源码地址:https://github.com/Hyacinth-fjk/CombinedLanguageIntroduction/blob/master/3.C%E8%AF%AD%E8%A8%80%E5%B8%B8%E9%87%8F/character_constant.c


四、转义字符

转义符号在字符常量中是一种特殊的字符,转义字符是以反斜杠“”开头的字符,后面跟一个或几个字符。常用的转义字符及其含义——

  • a 响铃;
  • b 退格;
  • f 换页;
  • n 换行;
  • r 回车;
  • t 水平制表;
  • v 垂直制表;
  • 代表一个反斜杠字符“”;
  • ’ 代表一个单引号字符;
  • ? 代表一个问号;
  • 0 空字符;
  • ddd 1到3位八进制数所代表的任意字符;
  • xhh 1到2位十六进制所代表的任意字符。

五、符号常量

使用符号名代表固定的常量值,使用的符号名就称之为符号常量。使用符号常量的好处在于可以为编程和阅读带来方便。

#include <stdio.h>
#include <stdlib.h>

#define PAI 3.14 /*定义符号变量*/

int main(void)
{
    double radius; /*定义半径变量*/
    double result; /*定义结果变量*/

    printf("请输入圆的半径:"); /*提示*/
    scanf_s("%lf", &radius); /*输入数据*/

    result = radius * radius * PAI; /*进行计算*/

    printf("圆的面积为:%lfn", result); /*显示结果*/

    return EXIT_SUCCESS; /*程序结束*/
}

运行结果:

46626fa7d6081bef9b859aaccf653151.png
符号常量

源码地址:https://github.com/Hyacinth-fjk/CombinedLanguageIntroduction/blob/master/3.C%E8%AF%AD%E8%A8%80%E5%B8%B8%E9%87%8F/symbolic_constants.c

254ff692439968ee9dc41de3cc0f1de1.png
C语言常量https://www.zhihu.com/video/1193945075477016576

视频下载地址:https://pan.baidu.com/s/1Tp1NiPZwu3q6FL0q6toXwQ

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP