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

6-基本数据类型

3.数值越界 1> 例子演示 前面已经看到,每种数据类型都有自己的取值范围。如果给一个变量赋值了一个超出取值范围的数值,那后果会不堪设想。 ? 我们都知道,int类型能保存的最大值是231-1。...2.字符常量一定要用单引号括住 1> 下面的写法是错误的: ? 编译器会直接报第4行的错,错误原因是:标识符A找不到。你直接写个大写A,编译器会认为这个A是一个变量。...由于第6行用的是%d,表示以十进制整数格式输出,输出结果: 。因此,如果使用的整数不是很大的话,可以使用char代替int,这样的话,更节省内存开销。...有时候,我们要使用的整数可能比231-1还大,比如234这个整数,如果还坚持用int类型变量来存储这个值的话,就会损失精度,得到的是垃圾数据。...2> 这里面也有一点语法细节,其实第5行做了一个“强制类型转换”的操作:由于左边是int类型的变量i,那么就会强制把double类型的10.7转换为int类型的10,并且把转换后的值赋值给了整型变量i。

63910

『C++』我想学C++,C++太难了,那我想入门,给我10分钟我带你入门

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。 输入 一个整数(范围1到10000),表示天数。...ⅱ形参的存储空间是函数被调用时才分配的,调用开始,系统为形参开辟一个临时的存储区,然后将各实参传递给形参,这是形参就得到了实参的值。...不能返回自动局部对象的指针或引用:函数执行结束后,函数占用的栈存储空间被释放,原本位于这段存储空间中的局部对象和临时变量都被释放,返回的局部对象引用或指针指向不再有效的内存区域 重载函数 如果同一个作用域内的几个函数名字相同但形参列表不同...存储类别 static静态存储 static对象在控制流程第一次到达其定义点时被初始化,如果没有提供初始值就被自动初始化为0; 在函数的后续调用中,初始化语句被跳过 静态对象的值在函数被多次调用之间保持有效...若a不是素数则在2到sqrt(a)的范围内一定存在其因数。

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

    python中for循环的用法-Python for循环及基础用法详解

    end:用于指定计数的结束值(不包括此值),此参数不能省略。 step:用于指定步长,即两个数之间的间隔,如果省略,则默认步长为 1。...= 0 for ele in src_list: # 如果该元素是整数或浮点数 if isinstance(ele, int) or isinstance(ele, float): print(ele...不仅如此,程序中还使用了 Python 的 isinstance() 函数,该函数用于判断某个变量是否为指定类型的实例,其中前一个参数是要判断的变量,后一个参数是类型。...如果需要,for 循环也可根据索引来遍历列表或元组,即只要让迭代变量取 0 到列表长度的区间,就可通过该迭代变量访问列表元素。...例如如下程序: a_list = [330, 1.4, 50, ‘fkit’, -3.5] # 遍历0到len(a_list)的范围 for i in range(0, len(a_list)) : #

    3.4K20

    《深入理解计算机系统》阅读笔记--信息的表示和处理(上)

    言归正传,计算机是用有限数量的为来对一个数字编码的,所以当结果太大以至于不能表示时,运算就会出现类似上面两种情况的错误,这里称为溢出(这里先有一个概念)。...,为什么会出现溢出,为什么会计算错误,如何在自己以后写代码的过程中避免一些潜在的问题,让自己写出更高质量的代码 我们学习一门开发语言的时候,开始学习基础语法的时候都会学习各种数据类型,这些数据类型在系统中又是如何存储的呢...,尤其是强类型语言中 当时总是说负数表示的最大范围一直被-1 当时很多时候老师都会告诉你是因为符号位占了一位,当时可能是一个模糊的概念,为啥是符号位占了一位,从补码的这个概念,其实你就应该完全明白了为啥符号位占了一位...但是如果目标数据类型太小以至于不能表示想要的值时,就会出问题了,然而,从一个较小的数据类型转换到一个比较大的类型,总是可以的 要将一个无符号数转换为一个更大的数据类型,只需要在表示的开头添加0 这种运算被称为零扩展...总结 有符号到无符号的隐式强制转换会导致某些非直观的错误,从而导致我们自己的程序出现我们意想不到的错误 并且这种包含隐式强制类型转换的细微差别很难被发现。

    97030

    《深入理解计算机系统》阅读笔记--信息的表示和处理(上)

    言归正传,计算机是用有限数量的为来对一个数字编码的,所以当结果太大以至于不能表示时,运算就会出现类似上面两种情况的错误,这里称为溢出(这里先有一个概念)。...,为什么会出现溢出,为什么会计算错误,如何在自己以后写代码的过程中避免一些潜在的问题,让自己写出更高质量的代码 我们学习一门开发语言的时候,开始学习基础语法的时候都会学习各种数据类型,这些数据类型在系统中又是如何存储的呢...,尤其是强类型语言中 当时总是说负数表示的最大范围一直被-1 当时很多时候老师都会告诉你是因为符号位占了一位,当时可能是一个模糊的概念,为啥是符号位占了一位,从补码的这个概念,其实你就应该完全明白了为啥符号位占了一位...但是如果目标数据类型太小以至于不能表示想要的值时,就会出问题了,然而,从一个较小的数据类型转换到一个比较大的类型,总是可以的 要将一个无符号数转换为一个更大的数据类型,只需要在表示的开头添加0 这种运算被称为零扩展...总结 有符号到无符号的隐式强制转换会导致某些非直观的错误,从而导致我们自己的程序出现我们意想不到的错误 并且这种包含隐式强制类型转换的细微差别很难被发现。

    76000

    C++ 2019-2022年 CSP_J 复赛试题横向维度分析(上)

    小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。 小文很快意识到,她的程序里的变量都是int 类型的。...在大多数机器上,int类型能表示的最大数为231-1,因此只要计算结果超过这个数,她的程序就会出现错误。由于小文刚刚学会编程,她担心使用int计算会出现问题。...如果有满足其要求的值,则最大值一定是 n-1。如果不存在,则最大值为 r。针对不同的L和R,K可能会有多个,注意本题不是求 K,而是求 k 除 n的最大余数。...注意, 一个数 x 能被表示成示成 2 的正整数次幂,当且仅当 x 能通过正整数个 2 相乘在一起得到。 例如, 10 = 8 + 2 = 23 + 21 是一个优秀的拆分。...第 i 行的第 1 个整数代表第 i 条记录乘坐的交通工具,0 代表地铁,1 代表公交车;第 2个整数代表第 i 条记录乘车的票价 pricei;第三个整数代表第 i 条记录开始乘车的时间 t;(距 0

    74040

    C语言:数据在内存中的存储形式

    同理,如果尾端的数字在较低地址处,就是低尾端,也就是低位字节被保存在低地址处。 4.2 为什么有大小端 为什么会有⼤⼩端模式之分呢?...有符号整数提升是按照变量的数据类型的符号位来提升的 2. ⽆符号整数提升,⾼位补0 5.3 大小端和强制类型转换的关系 大小端(endianness)是指多字节数据在存储时的字节顺序。...既然无关,那为什么说小端的优势就是强制类型转换数据不需要调整字节内容??...⾸先,规定E为⼀个⽆符号整数(unsigned int) 这意味着,如果E为8位,它的取值范围为0~255;如果E为11位,它的取值范围为0~2047。...对于unsigned char来说,8个位都是数值位,所以最大为11111111即255,最小为00000000即0,所以unsigned char类型的取值范围是0~255.

    25820

    同一份数据,Redis为什么要存两次?

    记录了当前整数集合的数据存储类型,主要有三种: INTSET_ENC_INT16 此时 contents[] 内的每个元素都是一个 int16_t 类型的整数值,范围是:-32768 ~ 32767(-...整数集合的升级 假如一开始整数集合中的元素都是 16 位的,采用 int16_t 类型来存储,此时需要再存储一个 32 位的整数,那么就需要对原先的整数集合进行升级,升级之后才能将 32 位的整数存储到整数集合内...member 加入到集合 key 当中,并返回添加成功的数目,如果元素已存在则被忽略。...ele(元素) 跳跃表中元素是一个 sds 对象(早期版本使用的是 redisObject 对象),元素必须唯一不能重复。...O(logN),而字典中获取一个元素的复杂度是 O(1),而如果单独使用字典虽然获取元素很快,但是字典是无序的,所以如果要范围查找就需要对其进行排序,这又是一个耗时的操作,所以 Redis 综合了两种数据结构来最大程度的提升性能

    34330

    Java基础-Java基础-02总结关键字,标识符,注释,常量进制,变量数据类型

    C:格式: 目标数据类型 变量名 = (目标数据类型) (被转换的数据); /* 强制转换: 从大的数据类型到小的数据类型。...格式: 目标数据类型 变量 = (目标数据类型) (被转换的数据); 注意: 不要随意的去使用强制转换,因为它隐含了精度损失问题。...常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错。...byte的范围内,如果在就不报错。...整数默认是int类型,浮点数默认是double。 byte,short在定义的时候,他们接收的其实是一个int类型的值。 这个是自己做了一个数据检测的,如果不再它们的范围内,就报错。

    76950

    C语言数据在内存中的存储超详解

    ,那么它在内存中就是: 01 00 00 00 而 &a 得到的是 a 的这4个字节的第一个字节的地址,也就是 01 这个字节,将其强制类型转换为 char* 再解引用,得到的就是 1。...unsigned char 类型的最大值是255,如果此时再+1,就会变成多少呢?...} 关于ptr1,在指针系列中我已经讲解过,这里只做简要说明,不明白可以看我的指针系列文章,&a+1跳过整个数组,再强制类型转换为int*,ptr1[-1]就是取ptr1 的上一个数字,也就是 4,按照...我们重点来看 ptr2,首先将 a强制类型转换为int,这里a是指数组的首元素的地址,假设是0x00115511,再+1得到0x00115512,再强制类型转换为int*,也就是相对原来的位置,向后走了一个字节...至于指数E,情况就比较复杂 首先,E为一个无符号整数(unsigned int) 这意味着,如果E为8位,它的取借范围为0 ~ 255;如果E为11位,它的取值范围为0 ~ 2047。

    9310

    html5 scrollheight,JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记…

    、内边距和元素的水平滚动条(如果存在且渲染的话),是一个整数。...所以当滚动条在最顶端的时候,scrollTop=0,当滚动条在最低端的时候,scrollTop=115 这个115怎么来的(滚动条高度是15,我量的),见下图。(实为我主观臆测,不保证准确性。。。..._(:з」∠)_ scrollTop是一个整数。 如果一个元素不能被滚动,它的scrollTop将被设置为0。 设置scrollTop的值小于0,scrollTop被设为0。...如果设置了超出这个容器可滚动的值,scrollTop会被设为最大值。...) { // ele.scrollTop = 0; let dy = ele.scrollTop / 4; // 每次更新scrollTop改变的大小 if (ele.scrollTop > 0)

    91020

    C语言——B数据类型和变量

    char 类型是用来表示字符的,通常是一个 8 位的整数类型。如果 char 是有符号的,那么其取值范围通常是 -128 到 127。如果 char 是无符号的,那么其取值范围通常是 0 到 255。...如果 short 是一个 16 位的整数类型,其取值范围通常是从 -32,768 到 32,767(即约 -2^15 到 2^15-1)。...如果 int 是一个 32 位的整数类型,则其取值范围通常是从 -2,147,483,648 到 2,147,483,647(即约 -2^31 到 2^31-1)。...1.如果 long 是一个 32 位的整数类型,其取值范围通常是从 -2,147,483,648 到2,147,483,647(即约 -2^31 到 2^31-1),与int 类型相同。...2.如果 long 是一个 64 位的整数类型,其取值范围通常是从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807(即约 -2^63 到 2

    16610

    C语言 -- 一个由数据类型和取值范围引发的 BUG

    在基本类型中的整数类型、浮点数类型和字符类型在之前介绍过了;其中的_Bool是布尔型,只能取 0 和 1 两个值;另一个是枚举类型(enum),这个类型将在后面的部分进行介绍。...分析输出的结果,通过第 1 行和第 2 行输出可以看出对于某一种数据类的变量,变量和数据类型的大小是相同的,这是很显然的;其次通过第 3 行到第 6 行可以看到,数据类型的长度满足上面的不等式 short...但是我们如果强制将无符号数赋值为负数呢?代码如下 ? 输出的结果如下图所示 ? 我们可以看到无符号数 b果然没有输出对应的 -1 ,但是为什么输出 65535 呢?这就与数据类型的取值范围有关了。...符号位为0,表示正整数;为1,表示负整数。一个8位的整型变量,除去左边第一位符号位,剩下表示值的只有7个比特位。...如下图为正数 7 和负数 -7 的补码 ? 一个字节的有符号数的取值范围如下图所示 ? 其中我们可以看到负数最高可以到 -128,而正数最高只能到127,这是为什么呢?

    85120

    Appium常用操作之「微信滑屏、触屏操作」

    5.首先确定每一个点的位置 选择一个元素上的坐标,大概会选哪个位置的? 中心。 坐标轴写错了一点,偏移了点,好歹也是在范围之内。如果选择边缘的点,偏了点可能就出不去了。...所以,一般选一个元素的坐标,尽量选择中心。 每个点之间的间隔是一样的。从一个点挪到另外一个点,y 轴不用动,x 轴只要有个固定的距离就好了。...第5个点的坐标。 #元素的大小 size=ele.size # 均分的步长 高和宽一样(因为是正方形) step=size["width"]/6#py3中除是取整数的,会缺点小数点没关系。...用的当前元素的原坐标点加上移动的距离得到的是当前相对于整个屏幕左上角这个 00 的真实坐标值。 我现在用的坐标,但是有的版本的问题是: 它的move_to参数不是绝对坐标。...因为代码里写的真实坐标,再加上 x,第二个点可能没有越界,第三个点就越界了。 如果报“越界”错误,那么就改成相对坐标滑动一下,看看有没有报错。

    1.6K20

    java文档注释符号_java的注释符号

    注意,关键字不能被用作标识符!...,可以直接使用 float f = 3.2f; double d = f; –>可以执行 4.2 大到小(显式转换) 容量大的类型转换为容量小的类型时必须使用强制类型转换。...浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入 例如:float f = 32.7f; int a2 =(int) f; //打印的结果是32 不能对boolean类型进行类型转换。...5.3 整数运算溢出 整数运算,类似于一个钟表,转到最大时,再转会回到最小。 计算:光速运行一年的长度是多少米?...【强制】标识符命名均不能以数字开头,而且下划线或美元符号开始,也不能以下划线或美元符号结束 错误案例:1name / _ name / name_ / name / name 2.

    10.3K21

    Java基础-数据类型

    char 类型表示的是一个16 位 Unicode 字符,最小值是 \u0000(十进制为 0);最大值是 \uffff(65535), 而字符串类型(String)是引用类型,下面会提及。...有正负则用带符号整数表示,否则就用无符号整数表示,先记住以下两条结论: 1)n位的无符号整数的表示范围为 0,(2^n)-1 ,刚好符合 char的范围表示 2)n位的带符号整数的表示范围为 -2^(n...表示的数据范围最大为127(不理解的回见 4、占位及数据范围部分),所以当 int强制转换为 byte 类型时,值 128 就会导致溢出。...Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类(向上和向下转型问题,后面会介绍)。...2、接口(interface) 1)接口是一个抽象类型,是抽象方法的集合。 2)几点注意: 接口无法被实例化,但是可以被实现。

    25833

    Appium常用操作之「微信滑屏、触屏操作」

    5.首先确定每一个点的位置 选择一个元素上的坐标,大概会选哪个位置的? 中心。 坐标轴写错了一点,偏移了点,好歹也是在范围之内。如果选择边缘的点,偏了点可能就出不去了。...所以,「一般选一个元素的坐标,尽量选择中心。」 每个点之间的间隔是一样的。从一个点挪到另外一个点,y 轴不用动,x 轴只要有个固定的距离就好了。...第一个点的坐标:能够得到 view 的起点坐标是 45,272。有专门的函数可以获取元素的大小以及它的起点坐标。 ? 图片来自网络 假设起点坐标是 x、y,我现在已经知道将它分成了 6 份。...第5个点的坐标。 #元素的大小 size=ele.size # 均分的步长 高和宽一样(因为是正方形) step=size["width"]/6#py3中除是取整数的,会缺点小数点没关系。...用的当前元素的原坐标点加上移动的距离得到的是当前相对于整个屏幕左上角这个 00 的真实坐标值。 我现在用的坐标,但是有的版本的问题是: 它的move_to参数不是绝对坐标。

    2.1K20

    C语言(2)----数据类型、变量以及操作符

    也就是说,像3/2,原本应该得到1.5,但是由于只取整数,所以答案是1(这个规则不会因类型而改变,也就说尽管类型是float浮点数,得到也是整数) 而如果想要得到小数,符号两端的操作数就必须至少要有一个是小数...,也就是如果要得到1.5,那么就必须是3.0/2或者3/2.0或者3.0/2.0 可以理解为为了得到同类型的答案,就必须要有一个操作数来作示范。...至于为什么不能用于浮点数,因为它会把余出的数给表示出来,自然就不存在小数 负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。...但是要注意有个特例就是%c,%c 不忽略空⽩字符,总是返回当前第⼀个字符,⽆论该字符是否为空格.如果要强制跳过字符前的空⽩字符,可以写成 scanf(" %c", &ch) ,即 %c 前加上⼀个空格,...scanf() 的返回值是⼀个整数,表⽰成功读取的变量个数。 如果没有读取任何项,或者匹配失败,则返回 0 。如果在成功读取任何数据之前,发⽣了读取错误或 者遇到读取到⽂件结尾,则返回常量 EOF。

    11710

    带你彻底击溃跳表原理及其Golang实现!(内含图解)

    新增节点时是如何决定level的指针指向哪个后继节点?为什么zset分值可以相同而成员对象不能相同? 为了解答这些问题,我决定完全弄懂跳表的原理,自己实现一个基础的跳表。...假设C(i)为一个无限长度的跳表中向上爬i层的期望代价(即经过的节点数量) 爬到第0层时,无需经过任何节点,所以有: 爬到第1层时,可能有两种情况: 从有p的概率是从第0层直接爬升1个节点,这种情况经过的节点数为...0-1的数,如果小于晋升概率p,且总层数不大于最大层数时,将level+1。...遍历update数组,但只遍历到新节点的最大层数。 增加跳表长度,返回true表示新增成功。...经典跳表也同样需要一个维度来确定插入的顺序,我的跳表实现中直接使用了新节点的值作为排序的维度。 (三)为什么zset分值可以相同而成员对象不能相同?

    41420

    JAVA 基础

    但有以下两个例外: 如果一个整数很小(在byte或short)的范围内,当这个整数常量被付给一个byte或short变量时,整数常量会被当作byte或short类型。...如果一个巨大的整数常量(超出了Int的存储范围)时,系统不会把这个整数当作long类型处理,除非用户在常量后加上一个字母"L"。         ...但由于数值后添加了L后缀,因此该整数的实际占64位,第32位的1不是符号位。           ...如果把一个整数(0~65535之间)常量赋给字符类型变量,系统会把整数当作char处理。                ...;          }  }               如果系统把大范围变量转换为小范围变量就需要强制转换,强制转换的语法格式是(type)value,可将valae强制转换为type类型的变量。

    56400
    领券