首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言进阶(二)--- 整型存放练习

整形存放练习题   接上篇博客中未完结的整型练习题   上一篇博客我们展示了百度2015年系统工程师笔试题(不了解的看上一期博客—C语言进阶之数据的存储),请简述大端字节序和小端字节序的概念,设计一个小程序来判断当前机器的字节序...我们了解了大小端字节序存储的概念及方法,而今天这篇博客,我们将继续练习整型数据在内存中如何进行存放。 练习(一) 1. //输出什么?...,b=%d,c=%d",a,b,c); return 0; }   请问最后的a,b,c打印的数字是多少?...unsigned char c = 255 a = -1 , b = -1,c = 255 ?...%d 打印的是有符号整型 %u 打印的是无符号的整形   这一题打印的是 a = 128时 无符号的整型   我们知道,在正数里,char类型取不到128,那我们就将128看做是127+1,那么我们可以根据上面的

56210

c语言 数组存放规则,C语言数组详解

数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中, 数组属于构造数据类型。...数组元素的一般形式为: 数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。例如,a[5],a[i+j],a[i++]都是合法的数组元素。...二维数组元素的表示方法 二维数组的元素也称为双下标变量,其表示的形式为: 数组名[下标][下标] 其中下标应为整型常量或整型表达式。例如: a[3][4] 表示a数组三行四列的元素。...字符数组 用来存放字符量的数组称为字符数组。 字符数组类型说明的形式与前面介绍的数值数组相同。...例如: char c[10]; 由于字符型和整型通用,也可以定义为int c[10]但这时每个数组元素占2个字节的内存单元。

6.2K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C语言整型数据类型

    C语言中的整型数据类型int、short int 和 long int 名称 全称类型说明符 缩写类型说明符 位数 范围 整型 int int 16位 -32768至+32767 无符号整型 unsigned...int withd, height; int 类型的变量初始化方式: withd = 150; //前面已经声明,在此进行初始化 int height = 60; //直接在一个语句中进行声明和初始化 C语言整型常量有三种不同的表示形式...其它整数类型     int 是 C 语言的基本整数类型,可以满足我们处理一般数据的需求。C 语言还提供了四个可以修饰 int 的关键字:short、long、signed,以及 unsigned。...注意:C 语言中 2^15 并不表示 2 的 15 次方,为了书写方便,我们姑且这么表示。long 的最小取值范围是 -2147483647 到 2147483647 。...C99 标准 整型常量 十进制、八进制和十六进制的整型常量可加后缀以指示类型,如下表所示。

    2.6K20

    C语言进阶:整型数据的存储

    以下列出了32位系统与64位系统的存储大小的差别(windows 相同): 二.整型的存储 数据在内存中以2进制的形式存储,对于整数来说: 1.整数的二进制有三种表示形式:原码,反码,补码。...三.整型提升 1.什么是整型提升: C整型算数运算总是至少以缺省整型类型的精度来进行的。...,高位字节序的内容存放在低地址; 2.小端字节序:把数据的低位字节序的内容存放在低地址,高位字节序的内容存放在高地址; 存放在地址中是以16进制形式存放的; 什么是低位字节序,什么是低地址呢?...如图: 可以这么理解,小端字节序是倒着存放的,大端字节序是正着存放的。...} else printf("大端\n"); return 0; } 六.char 类型的存储问题 首先 char 类型到底是 signed char 还是 unsigned char ,C语言标准并没有规定

    25710

    c语言输出整型量格式符,C语言输出格式(详细)

    C语言格式化输出 一、printf()函数 printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。...%u 十进制无符号整数 %f 浮点数 %s 字符串 %c 单个字符 %p 指针的值 %e 指数形式的浮点数 %x, %X 无符号以十六进制表示的整数 %0 无符号以八进制表示的整数 %g 自动选择合适的表示法...比如说%3d 表示输出3位整型数,不够3位右对齐。...: 输出长整型数据 printf(“输出长整型数据:d=%ld\n”,d); printf(“指定输出的宽度输出长整型数据:d=%9ld\n”,d); //%-md:可以控制输出左对齐,即在”%”和字母之间加入一个...: p=%p\n”,p); //%e 指数形式的浮点数 printf(“指数形式的浮点数输出: e=%e\n”,e); //%g 自动选择合适的表示法 printf(“double浮点数自动选择合适的表示法输出

    4.4K20

    C语言进阶】整型在内存中的存储

    这个系列,我们将探索C语言中更深层的内容! ---- 前言  在日常敲代码的过程中,我们经常会使用整型常量来对变量进行赋值,但我们可能却没有考虑过不同的变量到底是如何存入内存中!...----        2.整型在内存中存储必须知道的基础知识(原反补码)     在内存中,不管是正数还是负数,存储形式都是以补码的形式存储!!    ...负整数的三种表示方法各不相同       原码         直接将数值按照正负数的形式翻译成二进制就可以得到原码。      ...不应该是32位的二进制比特位存储形式吗?              接下来,我们探究探究! 0x是16进制的表示方式,所以我们猜想,大概以二进制补码存进去,以16进制展现出来,所以试一试!...总结 1.在内存中,不管是正数还是负数,存储形式都是以补码的形式存储!!       2.一般情况下,int,char等整型通常是有符号数。

    91020

    c语言设计计算器-【C语言-5】吃透C语言整型,快速计算取值范围!

    整型数据类型   在上一节当中,我们遇到了用int(整数的缩写)来表示一个整数的数据类型。   这一节中,我们来详细讨论一下C语言里面的整数数据类型。   ...在C语言中,有上面表中列出的几种整型数据类型。   看到这里你可能想问,一个整数而已,为什么会需要定义这么多不同的类型出来呢?   计算机通过晶体管的开关状态来记录数据。...因为C语言标准并未规定这些数据类型的大小范围,具体的实现交由了编译器和平台决定。那我们怎样知道在visual studio 2019中,各种整型数据类型能够表示的数据范围呢?   ...它能够测量C语言各种实体所占用的字节大小。   如果我们想看int所占用的字节大小c语言设计计算器,可以这样写sizeof(int)。执行后这段代码后,它的测量结果是一个整型。...三位二进制表示的数值范围TIPS:如果暂时无法理解关于整型表达范围的原理分析,请先记住sizeof的使用和各种整型变量的表达范围的结论即可。不理解整型表达范围的原理不影响对C语言的使用。

    2.6K30

    C语言进阶指南(7)(类型转换、整型提升)

    欢迎来到博主的专栏C语言进阶指南。博主id:reverie_ly显式转换我们可以将某个表达式强制转换成其他类型。...int i = 25555;i = (unsigned char)i;此时表达式中的i被转换unsigned char类型,数值是211隐形转换我们前面已经了解了浮点数和整数的存储形式是完全不一样的,但是在...C语言中是可以用int类型的数据接收到float类型的数据的(会发生精度丢失)float f=3.14int i=f;//i的值是3这是因为C语言会对不同的类型进行隐性转换。...(因为long类型的数据占用8字节,高于其他两位)C语言中隐形转换的优先级如下:1、如果整数类型与浮点型进行算术运算,那么整数类型总是转换成浮点型2、如果整数类型占用的字节相同,那么有符号整型总是转换成无符号整型参与计算...整型提升的方法如下:如果是有符号整型:根据符号位的位数来提升,如果从32位提升至64位整数,如果int型的符号位为1,整型提升的过程就是在最高位补1.比如-1的存储位数为11111111 11111111

    14310

    C语言 实现浮点数的整型强制转化

    1.整型在内存中的存储形式 int 与 float 均是四个字节大小,即32位,但是他们在内存中的存储形式却是完全不相同的。 下面举一个例子,在vs下通过查看内存验证一下以上的事实。...可见,b在内存中4字节是按照 00 00 42 41存储,因为我的机器是小端模式,所以真正的存储形式是 41 42 00 00。...真正转化现在开始,了解了前面的知识,我们就知道了浮点数是如何计算机中存储的,将其转换成整型无非就是取到它的整数部分即可。...下面实现这样的一个单精度浮点数到整型的强转函数: int float_to_int(float f) { int *p = (int*)&f; //由于指针访问内存是按照基类型进行的,首先进行强转访问浮点数...(关于这点,目前还在测试,一定会有一个满意的解释的) 写到这里,差不多结束了,其实双精度浮点数的强转时类似,只要能完全掌握双精度浮点数在内存中的存数形式

    2.5K20

    C语言 | 数据的表现形式

    C语言规定标识符只能由字母、数字和下划线3种字符组成,且第1个字符必须为字母或下划线。...型 编译系统为每一个float型变量分配4个字节,数值以规范化的二进制数指数形式存放在存储单元中。...在一个整数的末尾加上大写字母L或小写字母l,表示它是长整型 浮点型常量:以小数形式或指数形式出现的实数,是浮点型常量,在内存中都以指数形式存储。...C语言常用数据类型 以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线    C语言开发工具 VC6.0、Devc++...、VS2019使用教程 更多案例请去公众号:C语言入门到精通

    78332

    C语言中什么是常量表达式_c语言整型表达式

    常量表达式 c语言整型表达式和常量表达式中都没有变量参与吧? 完整问题: 好评回答:表达式没有变量参与?...它的单位是什么 完整问题: 好评回答:k=9.0*10^-19 单位是(N*m^2)/C^2 静电常数 “每个常量表达式的值不能相同,但次序不影响执行结果”有问题吗 完整问题: 好评回答:个人觉得有问题...int y=2; //二个常量表达式的值都是2,完全是可以的 C语言中switch()语句形式中case只加常量表达式但不加语句是什么意思?...完整问题:C语言中switch()语句形式中case只加常量表达式但不加语句是什么意思? 好评回答:表示几个case共用一条/组语句。即它与下面离它最近那个有语句的case使用相同的语句。

    1.2K30

    C语言】关于整型提升、截断、打印数据的结果

    一:先介绍一下相关概念 1.整型提升: (1)应用场景 数字有整数和小数,对应c语言中的整型和浮点型,由此可见当整数发生运算时,那其实就意味着整形运算,我们还知道如果小于整形的类型发生整型运算时,那就要进行整型提升...(2)应用场景 整数的打印形式有多种,常见的%d和%u分别是以有符号的十进制形式和无符号的十进制形式来打印整数 (3)整型提升的规则 无符号数在进行整型提升时高位补0,有符号数分为正数和负数,正数高位补...0,负数高位补1,换句话说就是,有符号数高位补符号位即可 明白什么时候整型提升后,我们再来讲解发生截断 2.发生截断: 其实就是一个整形数据存储到小于整型的类型时,由于存放字节数有限,只能存放这个整型数据的一部分...a+b就是两个整数运算,那就是整形运算,要发生整型提升后,再进行相加,相加后的结果为00000000000000000000000100101100 存储到c时,由于c是char型,又要发生截断,截断后存储到...c中的结果为00101100 最后打印a+b和c,由于%d是以有符号的十进制的形式打印整数,因为a+b本身就是32比特位了,所以不需要整型提升。

    2.2K30
    领券