C语言里一个字节对应什么变量类型,一起学习C语言:C语言数据类型(二)

本文深入探讨C语言中的整型数据类型,包括无符号与有符号的差异、短整型、整型、长整型的位数和取值范围。此外,还介绍了如何进行二进制到八进制、十六进制的转换,以及格式化整数规定符的相关知识。同时,讲解了字符类型,包括无符号字符和有符号字符的特性,以及ASCII码表的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇中,我们了解到“位与字节”的含义,并分析无符号短整形和有符号短整形的运算方式。本篇文章中,我们进行分析二进制到八进制、十六进制转换等内容。

章节预览:

1.2.2 无符号类型与有符号类型的区别

1.2.3 短整型、整形以及长整形的区别

1.2.4 整形

1.2.5 长整形

1.2.6 判断类型字节长度

1.2.7 八进制、十进制和十六进制

1.2.8 格式化整数规定符和取值范围(对应位数)

1.3 字符类型

1.3.1 无符号字符类型

1.3.2 有符号字符类型

1.3.3 字符类型与Ascll码表

目录预览

章节内容:

1.2.2 无符号类型与有符号类型的区别

通常情况下,无符号类型拥有的所有bit(位)都属于数字位;有符号类型中,最高bit(位)为符号位,其余bit(位)为数字位。当然,还存在一种特殊情况,有符号类型计算负数最小值时,需要考虑最高进位。

1.2.3 短整型、整形以及长整形的区别

在C语言中,短整型、整形和长整形采用相同的二进制转换方式,唯一不同之处是他们的位数(取值范围)。

1.2.4 整形

unsigned int表示“无符号整型”,在16位系统下int占用两个字节,32位以及64位系统下int占用四个字节。

signed int表示“有符号整型”,程序中简写为int,在16位系统下int占用两个字节,32位以及64位系统下int占用四个字节。

特别说明:

当编译器数据模型为LP32(32位),unsigned int 和 int占用两个字节。

1.2.5 长整形

unsigned long int表示“无符号长整型”,程序中简写为unsigned long,在16位、32位系统下unsigned long占用四个字节,64位系统下unsigned long占用八个字节。

signed long int表示“有符号长整型”,程序中简写为long,在16位、32位系统下long占用四个字节,以及64位系统下long占用八个字节。

特别说明:

当编译器数据模型为LLP64 (64位)时,unsigned long 和 long 占用四个字节。

在C99标准中,扩展了新的整数类型 unsigned long long 和 long long类型,它们属于长整形的扩充版本。目前大部分编译器中,unsigned long long 和 long long类型分别占用八个字节。

1.2.6 判断类型字节长度

在不同的编译器位数以及不同的编译器数据模型下,所得到的类型字节长度也不相同。在C语言中,我们可以通过sizeof函数获取类型或类型对象的长度。

sizeof函数用法:

unsigned short a = 0;

int aa = sizeof(a); 或 int aa = sizeof a;

通过计算类型对象获取类型长度。

int aa = sizeof(unsigned short);

通过计算类型获取类型长度。

1.2.7 八进制、十进制和十六进制

现在我们了解了不同整数类型的位数以及有符号和无符号的二进制到转换十进制数字,实际编程中十进制也是比较简便和常用的数据存储、查看方式。

在实际编程过程中,八进制和十六进制数字在部分领域也作为主要的数据存储、查看方式,比如DSP、DMA数据采集存储、计算内存地址等。

二进制数字转换到八进制数字:

二进制数字1100 1001:

cd2c4b837597feff2f6638830c785627.png

1.2-3 二进制转换到八进制数字

二进制数字转换到八进制数字时,每三位二进制数字转换为一位八进制数字,不满足三位时,高位补0对齐,参考图1.2-3 二进制转换到八进制数字,计算方式为:

(2^0 + 0 + 0) * 10^0 + (2^0 + 0 + 0) * 10^1 + (2^0 + 2^1 + 0) * 10^2 = 311

bit0-bit2                       bit3-bit5                       bit6-bit9

1                                 10                            &n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值