Linux C基本类型介绍

C语言数据类型可分为基本数据类型、构造数据类型,指针类型、空类型这四大类。

本文将介绍基本数据类型的数据类型。其中基本数据类型可分为:整型、字符型、浮点型。本节要求熟悉使用2、8、10、16进制的转换。“%#”可以输出进制前面的前缀名如(0x,0);

1.整型

      整型中分为short(短整型)、int(整型)、long(长整型)、long long(长长整型)。而整型又分为unsigned / signed,无符号型、有符号型。在C语言中不写unsigned / signed这个,则默认认为有符号型的。有符号型的最高位为符号位(0为正、1为负)。b4d10ccf27db4046897d6362084d6a88.png

        根据有无符号整数类型取值范围。在笔试中常会出整数类型关于向下、向上溢出的相关题型。“%hd”,表示打印有符号int的一半(2位),而short就是2位的。“%hu”表示打印无符号2位。输出端a=-1是因为“%hd”打印有符号型的会把65535(1111 1111)最高位做为符号位1,即表负数的补码,通过反码+1负数原码即(-1);

       如图2."%hu"表示无符号的2位整型。当变量a1运算大于signed short的取值范围时,则会保留低16位数据、高位的会被丢弃即为(0x00 00 00 01),所以hu:a1=1。其它同理可得。

e397bc200a994160ab9cd4edb7fa01de.png

图1

581476b6b21a4db89b2d53d38aaf8031.png

图2

        计算机存整数是通过补码的方式进行存储。正数的原码、反码、补码都是一样的;负数的补码是等于反码加1;这里以-6735为例。代码运如下最右侧为补码后存储数据。存储方式又分为大端存储还是小端存储。小端存储是将高位数据存放在高位地址中,低位数据存放在低位地址中。大端存储则反之。而在X86系统中常用的是小端存储,大端存储在C51单片机中。2b782414bce54356b97bcab73bc0df88.png

354306792fae48be9d7f14aa7079fa84.png

负数的原码、补码、反码计算

2.浮点型

       浮点型分为float 、double类型。都采用IEEE 754标准存储的。浮点数据默认为double类型的,可以通过float a=0.9f;将它设置为float类型的。

float存储:1位符号位+8位指数位(+127偏移量)+23位尾数位

double存储:1位符号位+11位指数位(+1023偏移量)+52位尾数位

低于偏移量的表示为负数指数位,高于表示位正指数位

7495d08e0c0949f89a79ba987ce94f3b.png

而在浮点型相关的题型常考2个精度不一样进行比较。

c161dba477a94cbb9aa4ac29df2e09f2.png

3.字符类型就没什么好说的,根据ASCII进行转化输出即可。

        最后总结个关于不同系统中基本数据类型字节也是不同的。773c6f51a7334deca2f90f3278ad279d.png        

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值