0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言-基本数据类型与位运算

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-14 09:56 次阅读

一、前言

这篇文章作为基础知识点,总结C语言的基本数据类型有哪些,浮点数的精度,整数变量的空间范围,变量定义语法,变量命名规则,浮点数打印格式,基本数据类型printf对应的打印、位运算的知识点。

二、变量的定义语法与数据类型

<数据类型> <变量名称>;

例如: int a;

数据类型可以填哪些?
int、char、float、double、long、short 

每个数据类型有什么区别?
int 用来存放整型数据。比如: 123、456、-678
char 用来字符和整型数据。比如:123、2、5、'A'、'K'
float 用来浮点数类型的数据(单精度)。比如: 12.34 、12.0 、 56.789
double 用来浮点数类型的数据(双精度)。
long 用来存放整型数据。
short 用来存放整型数据。

int、char、short..都可以存放整型,具体有什么区别?
每个数据类型所占用的空间大小不一样。
int 类型 占4个字节
char类型 占1个字节
short类型占2个字节

int、char、short..都可以存放整型,具体能存放多大的数据?
因为整数的有负数的,所以程序里数据类型分为有符号和无符号。
无符号的关键字: unsigned
比如: int类型定义就有以下方式
unsigned int a; //表示不存放符号位,4个字节=32位,全部存放有效数据。 最大值: 0~4294967295
int a; //表示存放符号位,4个字节=32位,除了最高位其他位存放有效数据。 最大值: -2147483646  ~ +2147483647
unsigned char b; //存放的数据范围: 1个字节=8位    存放范围:0~2550x00 ~ 0xFF
char b;//存放的数据范围: 1个字节=8位    存放范围: -128  -  +127  

float,double ..都可以存放浮点数,具体的区别?
float 存放单精度浮点数.  占空间4个字节。精确到小数点后6位。
double 存放双精度浮点数. 占空间8个字节。精确到小数点后10位。

unsigned 关键字可以声明哪些数据类型? 只能声明整型。 unsigned char 、 unsigned int 

<变量名称>  是如何命名的?有什么要求?
变量名的首字母必须是: 字母或者是_ (下划线)、 首字符之后可以是数字。
命名规则: 'A'到'Z' 'a' 到 'z'  '0'到'9'  '_'
后面函数名称、数组的名称、结构体......都遵循该命名规则。

变量名称有没有长度限制? 一般限定32个字符。

示例代码验证结果

#include 
int main(int argc,char *argv[])
{   
    unsigned char a=256;
    char b=128;
    printf("a=%d\n",a); //0
    printf("b=%d\n",b);//-128
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    printf("int=%d\n",sizeof(int));  //4字节
    printf("unsigned int=%d\n",sizeof(unsigned int)); //4字节
    printf("float=%d\n",sizeof(float)); //4字节
    printf("short=%d\n",sizeof(short)); //2字节
    printf("double=%d\n",sizeof(double)); //8字节
    printf("char=%d\n",sizeof(char)); //1字节
    printf("123=%d\n",sizeof(123));//4字节
    return 0;
}

三、整数、浮点数格式前缀和打印格式

#include 
int main(int argc,char *argv[])
{   
    int a=7;     //十进制
    int b=0x7;   //十六进制
    int c=07;   //8进制
    int d=0b0111; //二进制   gcc是支持。
    printf("%d\n",a);
    printf("%d\n",b);
    printf("%d\n",c);
    printf("%d\n",d);
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    unsigned int a=100;
    int b=200;
    float c=12.34;
    double d=456.789;
    long f=456;

    printf("%u\n",a);
    printf("%d\n",b);
    printf("%.2f\n",c);
    printf("%.3f\n",d);
    printf("%ld\n",f);
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    printf("%10d\n",123);  //左补齐空格
    printf("%-10d,%d\n",123,456);  //右边补齐空格
    return 0;
}
#include 
int main(int argc,char *argv[])
{   
    printf("%#x\n",255);  //16进制
    printf("%#d\n",255);  //10进制
    printf("%#o\n",255); //八进制
    return 0;
}

四、位运算知识点

位运算:~ 按位取反、| 按位或  & 按位与  >>按位右移  <<按位左移   ^异或运算
逻辑运算符: || 逻辑或  && 逻辑与   !逻辑非  (逻辑只有真假 0和1  非0即为真)

~ 按位取反的规则:  0为1、1为0
例如:  
unsigned char a=0x38;
00111000
11000111
~a等于11000111

| 按位或的规则:  有1为1,全0为0
& 按位与的规则:  有0为0,全1为1
>>按位右移的规则: 低位溢出、高位补0
<<按位左移的规则: 高位溢出,低位补0
^异或运算的规则: 相同为0 不同为1

  审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87590
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128432
  • 位运算
    +关注

    关注

    0

    文章

    16

    浏览量

    8383
收藏 人收藏

    评论

    相关推荐

    C语言中的基本数据类型

    C语言是非常重要的一门程序设计语言,学好C语言再去学习其他编程语言将变得很轻松,因为大部分语言的都有相同的共性存在。本节我们来讲解一下C
    发表于 04-26 17:33 1337次阅读
    C<b class='flag-5'>语言</b>中的基<b class='flag-5'>本数据类型</b>

    C语言中基本数据类型、变量和常量的使用

    C语言中基本数据类型、变量和常量的使用
    发表于 08-18 16:42 590次阅读
    C<b class='flag-5'>语言</b>中基<b class='flag-5'>本数据类型</b>、变量和常量的使用

    C语言本数据类型,变量和常量

    ),float(单精度浮点型),double(双精度浮点型),signed(有符号) ,unsigned(无符号),long(长整型)数据数据类型的单词在C语言中称为关键字非基
    发表于 01-16 11:33

    Java基本数据类型之间的运算规则是什么?

    Java基本数据类型Java变量的使用说明Java基本数据类型之间的运算规则
    发表于 11-04 09:59

    C语言的基本数据类型包括哪几种

    C语言的基本数据类型包括哪几种?分别是什么?
    发表于 10-14 12:27

    浅析C51的基本数据类型和扩充数据类型

    本数据类型:扩充数据类型
    发表于 11-22 06:05

    C预处理与C语言本数据类型

    指令表:注意:宏名的书写由标识符与两边各两条下划线构成。C语言本数据类型不同操作系统中数据类型所占字节数图解数据类型的其他分类:变量常量(
    发表于 12-21 08:29

    Java的基本数据类型与条件结构

    《Java基础入门》第二篇1 基本数据类型运算符与表达式,条件结构,循环结构...
    发表于 12-23 08:02

    单片机C语言中常用的基本数据类型分为哪几类

    不管在什么语言中,定义一个变量时必然要在内存中开辟一个相应大小的空间来存储该变量。不同的数据类型在内存所占的空间大小不同,其所能表示的数据范围也不相同。在单片机C
    发表于 02-28 06:46

    C语言程序设计教程之基本数据类型运算符和表达式的详细资料概述

    本文档的主要内容详细介绍的是C语言程序设计教程之基本数据类型运算符和表达式的详细资料概述主要内容包括了:1 C语言数据类型 2 常量和变
    发表于 10-31 18:04 30次下载
    C<b class='flag-5'>语言</b>程序设计教程之基<b class='flag-5'>本数据类型</b>、<b class='flag-5'>运算</b>符和表达式的详细资料概述

    C语言程序设计教程之基本数据类型运算符及表达式的资料说明

    本文档详细介绍的是C语言程序设计教程之基本数据类型运算符及表达式的资料说明主要内容包括了:1 C的数据类型,2 常量与变量,3 数据类型
    发表于 01-25 15:44 0次下载
    C<b class='flag-5'>语言</b>程序设计教程之基<b class='flag-5'>本数据类型</b>和<b class='flag-5'>运算</b>符及表达式的资料说明

    51单片机学习笔记(9)——C51的基本数据类型和扩充数据类型

    本数据类型:扩充数据类型
    发表于 11-14 13:36 1次下载
    51单片机学习笔记(9)——C51的基<b class='flag-5'>本数据类型</b>和扩充<b class='flag-5'>数据类型</b>

    C语言数据类型-2

    对于一个计算机程序,它所做的所有运算的本质都是数据的处理。但是数据的样式并不单一,因此就有了各种各样的数据类型。在C语言中,为了处理这些复杂
    的头像 发表于 02-21 14:44 542次阅读
    C<b class='flag-5'>语言</b>的<b class='flag-5'>数据类型</b>-2

    本数据类型分享

    本数据类型本数据类型:包括位、位序列、整数、浮点数、日期时间。此外字符也属于基本数据类型,请参见文档String与WString。 1.位和位序列 2.整数数据类型 3.浮点型实
    的头像 发表于 06-13 14:14 5872次阅读
    基<b class='flag-5'>本数据类型</b>分享

    javascript的基本数据类型有哪些

    JavaScript 是一种动态的、面向对象的编程语言,广泛应用于 Web 开发中。在 JavaScript 中,有七种基本数据类型(Primitive Types),它们分别是 Undefined
    的头像 发表于 12-03 11:17 359次阅读