c语言中一个数字占几个字节(C语言各种类型所占字节数)

char和int类型都是有符号数类型,char类型的变量占据1个字节的容量,int类型的变量占据4个字节的容量。那么,把char类型变量赋给int类型变量,会有什么问题产生?我们会很直观地认为,把1个字节大小的数据,放入4个字节大小的容量,没有任何问

char和int类型都是有符号数类型,char类型的变量占据1个字节的容量,int类型的变量占据4个字节的容量。那么,把char类型变量赋给int类型变量,会有什么问题产生?

我们会很直观地认为,把1个字节大小的数据,放入4个字节大小的容量,没有任何问题啊!我们做如下的一个测试例子:

c语言中一个数字占几个字节(C语言各种类型所占字节数)

程序运行结果如下:

c语言中一个数字占几个字节(C语言各种类型所占字节数)

可以看到b的结果也是-1,这是因为,把char类型变量赋值给放入int类型变量时,是把char类型变量的数据放入int类型变量的第字节,剩下的高位字节使用char类型变量的符号位扩展填充。所以,a变量的二进制是 1111 1111,其中符号位是1,那么,放入int类型变量的时候,把a变量的 1111 1111 数据放入int类型变量的低字节,高字节使用符号位1扩展填充,最终是1111 1111 1111 1111 1111 1111 1111 1111二进制数值,表示为-1这个数值。

下面来讲解一个应用实例,在网络通信或者串口通信的过程中,传输的数据是一个一个字节的数据流。例如,一个字节的数据是128(十六进制是0x80),对应是二进制是1000 0000,那么,就应该把这个数据当作“无符号”数看待,这样,一个字节中的8位数据才完全做为数值位,才表示128这个数值。

如果把128这个数值作为“有符号”数看待,那么,最高位作为符号位,剩下的7位作为数值位,那么,128这个数值当作有符号数看待时,其数值就发生了改变。测试例子如下:

c语言中一个数字占几个字节(C语言各种类型所占字节数)

程序运行结果如下:

c语言中一个数字占几个字节(C语言各种类型所占字节数)

可以看到,char类型是“有符号数”类型,那么,存储在char类型变量x中的数据当作“有符号数”看待。所以,128数值存储在1个字节中的二进制是1000 0000,当以十六进制输出%x的时候,默认输出4个字节的宽度,所以,1000 0000中的符号位向高位扩展,扩展到4个字节的空间。所以,得到4个字节中的二进制数据是:1111 1111 1111 1111 1111 1111 1000 000,表示是十六进制就是0xffffff80;

在第二行输出中,对变量x的输出,强制转换为无符号类型,那么,就把变量x当作无符号数看待,就输出其数值0x80。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/24452.html

(0)
nan
上一篇 2021-09-12
下一篇 2021-09-12

相关推荐

  • 出售域名需要注意什么意思(如何出售域名)

    出售域名需要注意什么意思,如何出售域名内容导航:域名买卖中需要注意哪些问题转让域名的什么应该注意什么网站域名出售需要什么证件域名交易需要注意什么事项一、域名买卖中需要注意哪些问题首先,需要对交易方的相关信息进行调查

    2022-04-27
    0
  • c语言或怎么打

    C语言是一种计算机编程语言,它是由美国贝尔实验室的Dennis M. Ritchie于1972年设计的。C语言具有高效、可移植和灵活的特点,被广泛应用于系统软件、嵌入式系统和游戏开发等领域。在开始编写C语言程序之前,你需要安装一个C语言编译器,如GNU GCC编译器或Microsoft Visual Studio。安装完成后,你可以使用任何文本编辑器创建并编辑C语言代码文件,将其保存为以“.c”

    2024-01-16
    0
  • 「纳税服务七免是什么」减免税的形式有哪些

    纳税服务七免是什么,减免税的形式有哪些内容导航:税务局的纳税服务是做什么的免征增值税的7个项目是哪些纳税服务七免是什么纳税服务规范制定的基本原则包括哪些一、税务局的纳税服务是做什么的税务局的纳税服务包括:1、进行税法宣传、提供纳税咨询辅导;2、为申报纳税和涉税

    2022-05-15
    0
  • 万网如何还原数据库(数据库怎么还原数据)

    万网如何还原数据库,数据库怎么还原数据内容导航:万网数据库mysql还原万网主机管理控制台变更了数据库怎么改回来万网的数据库怎么导入我申请了一个万网服务器怎么与它的数据库对接啊一、万网数据库mysql还原万网就没办法改,只能把你的备份在本地还原,然后分表数据备

    2022-04-28
    0
  • 玛贝拉脱毛膏怎么样(口碑最好的脱毛膏牌子)

    没有吊带、没有短裙,怎么过夏天?但是如果体毛太重的话,换上短裙也是很尴尬了,甚至是无袖的小裙子也穿不得。所以对于猕猴桃女孩来说,脱毛膏绝对是夏日必备了。今天我就要来扒一扒现在比较热门的6款脱毛膏,姑娘

    2021-12-21 技术经验
    0
  • 「打码兔如何使用教程」媚之源媚之春使用方法

    打码兔如何使用教程,打码兔自动打码脚本内容导航:在打码兔官网注册帐户后怎么使用媚之源媚之春使用方法天下HD礼包兑换码使用教程大众打码软件有哪些主要教程一、在打码兔官网注册帐户后怎么使用如果你是软件方使用验证码的上传等,你可以联系打码兔的客服。如

    2022-04-21
    0

发表回复

登录后才能评论