C语言整型常量的存储形式是怎样的?

这篇具有很好参考价值的文章主要介绍了C语言整型常量的存储形式是怎样的?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题

        整型常量的存储形式是怎样的?-8 在内存中的存储形式是怎样的?

二、解答

1、整型常量在计算机中的存储形式主要取决于其类型和编译器实现。

(1) 整型常量

 • 整型常量(如int类型)在计算机内存中是以二进制补码的形式存储的。
 • 根据整数的大小,它可能占用2个字节(对于short int类型,在某些系统上)、4个字节(通常对于
int类型)、8个字节(对于long int或long long int类型)等不同长度的内存空间。
 • 例如,如果有一个32位(4字节)的int类型的整型常量值为17,则其在内存中的二进制补码形式表示
为:00000000 00000000 00000000 00010001。

(2)不同类型整型常量的书写方式

• 十进制:直接写出数字即可,如 int a = 123;
• 八进制:以0开头,后跟八进制数字(0-7),如 int b = 023; 实际值是十进制的19
• 十六进制:以0x或0X开头,后跟十六进制数字(0-9、A-F 或 a-f),如 int c = 0x17; 实际值
也是十进制的23

        无论采用哪种书写方式,最终在内存中的存储都是按照对应数据类型的二进制格式来完成的。并且,根据C语言标准和不同的系统架构,不同大小的整型变量会有特定的最小和最大取值范围。

2、-8 在内存中的存储

        整数 -8 在内存中的存储形式取决于整数的位宽,通常我们讨论的是 32 位(4字节)的 int 类型。在大多数现代系统中,采用补码表示负数,因此:

对于一个 32 位的 int 类型:

8 的原码是 00000000 00000000 00000000 00001000    

要得到 -8 的补码

-->首先取反得到其反码,然后加 1:
-->反码:
        11111111 11111111 11111111 11110111
-->补码:
        11111111 11111111 11111111 11110111 + 1
      = 11111111 11111111 11111111 11111000

        所以,在内存中,-8 会以补码形式 11111111 11111111 11111111 11111000 存储。若是在 16 位系统或 16 位整型变量中,则为 11111111 11111000。

三、总结

        整型常量在内存中以⼆进制形式存储的有两种数据:有符号和⽆符号。

        上⾯介绍的是有符号的数据在内存中的存储形式,⽆符号的整型常量是正数或者 0,所以最⾼位不⽤来存放数据的符号,⽽是⽤来存放数据本身。文章来源地址https://www.toymoban.com/news/detail-815574.html

到了这里,关于C语言整型常量的存储形式是怎样的?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言数据在内存中存储---整型提升练习

    前言:学习了C语言中的整型提升,总是感觉听的时候很明白,但当自己做题的时候,又总是遗漏了哪一步。自己的感悟:整型提升步骤以及原理都一样,就是把步骤记清楚一步一步的来就行。因此通过下面的一道题来每日复习。 前景回顾: 整型提升:一个表达式中的操作数

    2024年02月10日
    浏览(47)
  • 【Java探索之旅】数据类型与变量,字面常量,整型变量

    🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天! 在Java编程中,理解常量、数据类型以及变量是构建程序逻辑的基础。本文将深入介绍Java中的字面常量、数据类型和整型变量,帮助读者掌握这些基础概念,为编写高效的Java程序打下坚实基

    2024年03月11日
    浏览(40)
  • 【C++】C 语言 和 C++ 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C++ 语言中常量原理 - 符号表存储常量 )

    【C 语言】const 用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 ) 普通类型数据的常量定义时 , const 在 数据类型 的 左边 和 右边 其作用 是相同的 ; 指针数据的相关常量类型 : const 在 指针符号

    2024年02月11日
    浏览(38)
  • 【C语言】探讨常见自定义类型的存储形式

    🚩 纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C语言 🔥该文章将探讨结构体,位段,共用体的存储形式。  结构体(struct)是一种用于存储一组不同类型数据的复合数据类型。为了提高内存访问效率,许多计算机系统对结构体进行内存对齐。内存对齐

    2024年02月09日
    浏览(30)
  • C语言:数据在内存中的存储形式

    关于整数在内存中的存储形式,在博主之前写的文章里已经介绍了!友友们可以去点下面链接去看,这里就不过多介绍。 C语言:进制的转换以及原码、反码、补码 我们以整型在内存中的存储形式为基础,探究后面的内容:整型提升与截断、算数转换、大小端字节序和字节序

    2024年01月23日
    浏览(461)
  • 爱上C语言:整型和浮点型在内存中的存储(进制转换,原码,反码,补码以及大小端)

    🚀 作者:阿辉不一般 🚀 你说呢: 生活本来沉闷,但跑起来就有风 🚀 专栏:爱上C语言 🚀 作图工具:draw.io ( 免费开源的作图网站) 如果觉得文章对你有帮助的话,还请点赞,关注,收藏支持博主,如有不足还请指点,博主及时改正,感谢大家支持!!! 大家好啊😉!今

    2024年02月05日
    浏览(42)
  • C语言——数据在内存中的存储【整型数据在内存中的储存,大小端字节序储存,浮点型数据在内存中的储存】

    📝前言: 在前面的三篇文章中我们已经完成了对字符函数和字符串函数的学习,现在就让我们探索新领域,更加深入的理解** 数据在内存中的存储方式 **: 1,整数在内存中的存储 2,⼤⼩端字节序存储 3,浮点数在内存中的存储 🎬个人简介:努力学习ing 📋个人专栏:C语言

    2024年02月04日
    浏览(36)
  • J9数字论:DAO组织的组成形式是怎样的?

    分布式与去中心化 DAO中没有中心节点或分层管理结构。它通过网络节点间自底向上的交互、竞争和协作来实现组织目标。 因此,在DAO中,节点之间、节点之间、节点与组织之间的业务交流不再由行政隶属关系来决定,而是遵循平等、自愿、互惠互利的原则,由彼此的资源禀

    2024年02月02日
    浏览(23)
  • 深度剖析数据在内存中的存储——int类型(整型)和float类型(浮点数)在内存中是如何存储和使用的?

    众所周知,C语言中有几种基本的内置数据类型: char - 字符数据类型 short - 短整型 int - 整型 long - 长整型 long long - 更长的整型 float - 单精度浮点数 double - 双精度浮点数 那为什么要设置这么多内置数据类型呢?类型的意义是什么? 本文将为大家介绍整型和浮点数在内存中的存

    2023年04月22日
    浏览(36)
  • C语言:截断+整型提升+算数转换练习

     详情关于整型提升、算数转换与截断见文章: 《C语言:整型提升》  《C语言:算数转换》 一、代码一 int main() {     char a = -1;     signed char b = -1;     unsigned char c = -1;     printf(\\\"%d %d %d\\\", a, b, c);     return 0; }  求输出结果 解析如下代码: 二、代码二 int main() {     char a

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包