数据和C


前言

学习关键字,运算符sizeof,函数scanf(),整数类型和浮点类型,printf()和scanf()读写不同类型值


一、数据

1.位、字节、字

最小的存储单元是位(bit),存储0或1.
1字节是8位,有256个0/1组合,可以表示0~255的整数或一组字符。
8位计算机一个字是8位,目前有64位。
整数没有小数点,计算机以2进制存储。
浮点数有小数点,计算机把浮点数分成小数部分和指数部分分别存储(二进制和2的幂存储)

2.int类型

存储一个int要占用一个字长,一般32位个人计算机用32位存储一个int,int的取值范围为-32768~32767。
变量要声明和初始化。

int cows;
cows = 10;

//或者
int cows = 10;

%d : 占位符,int类型,要与待打印的数量对应

printf("%d minu %d", cows,2);

0x或0X前缀表示十六进制数,0前缀表示八进制数。
计算机内部都是二进制编码。
显示八进制: %o
显示十进制:%d
显示十六进制: %x
若要显示各进制数的前缀0、0x、0X,必须使用%#o, %#x,%#X

#include <stdio.h>
int main(void)
{
    int x = 100;
    
    printf("dec = %d; octal = %o; hex = %x\n", x, x, x);
    printf("dec = %d; octal = %#o; hex = %#x\n", x, x, x);
    
    return 0;
}

int: 16或32位,试机器是16还是32而定
short int 类型:用于较小数值,比int位小,节省存储空间
long int :用于数值较大,比int位数多(现常见32位)
long long int : 适用于更大的数值(常见64位)
unsigned int : 用于非负,取值范围0-65535(对于16位机器,int有符号,符号位占一位,只能表示-32768~32767)
整数溢出的时候会从起点开始,比如int i = 2147483647; i+1会变成-2147483648

%u : 打印unsigned int 值,转换说明
%ld : 打印long 类型的int
%lx: 以十六进制格式化打印long类型
%lo:以八进制格式化打印long类型
%hd: 十进制显示short类型
%ho:以八进制显示short类型整数
%lu:unsigned long类型
%lld : long long 类型

#include <stdio.h>
int main(void)
{
    unsigned int un = 3000000000; /* system with 32-bit int */
    short end = 200;              /* and 16-bit short       */
    long big = 65537;
    long long verybig = 12345678908642;
    
    printf("un = %u and not %d\n", un, un);
    printf("end = %hd and %d\n", end, end);
    printf("big = %ld and not %hd\n", big, big);
    printf("verybig= %lld and not %ld\n", verybig, verybig);
    
    return 0;
}

2.char类型

标准ASCII编码取值范围0-127,只需7位二进制数,char定义为8位
声明和初始化:

char response;
char grade = 'A';

单引号括起来为字符常量,双引号括起来的叫字符串
单引号只适用于字符、数字和标点。
转移序列:char nerf = '\n';

转移序列意义
\a警报
\b退格
\f换页
\n换行
\r回车
\t水平制表符
\\反斜杠\
\’单引号
\"双引号

打印字符: %c

/* charcode.c-displays code number for a character */
#include <stdio.h>
int main(void)
{
    char ch;
    
    printf("Please enter a character.\n");
    scanf("%c", &ch);   /* user inputs character */
    printf("The code for %c is %d.\n", ch, ch);
    
    return 0;
}

3._Bool类型

表示逻辑值,true或false,用1表示true,0表示false

4.浮点数

计算机中的科学技术法写为e计数法,e后面的数字代表10的指数。
float 32位,double 64位。

浮点型常量的基本形式是:有符号的数字(包括小数点),后面紧跟e或E,最后是一个有符号数表示10的指数。正号可以省略。可以没有小数点(如2E5)或整数部分(如19.28)但是不能同时省略两者。可以省略小数部分(如3.E16)或整数部分(如.45E-6)但不能同时省略两者。

不要在浮点型常量中间加空格,如1.56 E+12(错误)

浮点数后面加f或F后缀可覆盖默认设置将浮点型常量看做float类型,如2.3f。使用l或L后缀使数字成为long double类型。没有后缀的浮点型常量是double类型。

打印浮点值用%f转换float或double类型浮点数,%e打印指数记数法的浮点数,打印long double的类型用%LF、%Le。

浮点数上溢:数字过大,会给浮点数赋值一个无穷大,inf
NAN:not a number ,未定义

sizeof():以字节为单位返回给出指定类型的大小
%zd:提供sizeof()的转义说明
给出当前各个类型的大小:

//* typesize.c -- prints out type sizes */
#include <stdio.h>
int main(void)
{
    /* c99 provides a %zd specifier for sizes */
    printf("Type int has a size of %zd bytes.\n", sizeof(int));
    printf("Type char has a size of %zd bytes.\n", sizeof(char));
    printf("Type long has a size of %zd bytes.\n", sizeof(long));
    printf("Type long long has a size of %zd bytes.\n",
           sizeof(long long));
    printf("Type double has a size of %zd bytes.\n",
           sizeof(double));
    printf("Type long double has a size of %zd bytes.\n",
           sizeof(long double));
    return 0;
}

二、使用数据类型

用int或float类型表示数字,用char表示字符,使用变量前必须声明并选择有意义的变量名。初始化变量应该用与变量类型匹配的常数类型。

C编译器把浮点数转化为整数时u,直接丢弃小数部分而非四舍五入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值