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

为什么在if之后第一个整数值变成零

在C语言中,if语句后面的条件表达式会被求值为一个布尔值(0或1),其中0表示假,非零值表示真。当条件表达式为真时,if语句块中的代码会被执行,否则会被跳过。

在if语句中,条件表达式的求值过程如下:

  1. 首先,计算if语句中的条件表达式,得到一个结果。
  2. 如果结果为真(非零值),则执行if语句块中的代码。
  3. 如果结果为假(0),则跳过if语句块中的代码,继续执行后面的代码。

当条件表达式为真时,if语句块中的代码会被执行,而当条件表达式为假时,if语句块中的代码会被跳过。因此,如果在if语句中第一个整数值变成零,意味着条件表达式的结果为假,if语句块中的代码会被跳过。

需要注意的是,这里提到的整数值变成零是指条件表达式中的整数值,而不是if语句块中的变量或其他整数值。在if语句中,条件表达式的结果是根据其求值结果来决定是否执行if语句块中的代码,而不会直接改变其他整数值。

总结: 在if语句中,当条件表达式的结果为假(0)时,if语句块中的代码会被跳过。这是因为条件表达式的结果决定了是否执行if语句块中的代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Redis为什么在6.0之后变成了多线程

每天早上七点三十,准时推送干货 在 Java 开发当中,我们用到的关于缓存使用的比较较多的就是 Redis,而关于 Redis 的面试题,也是我们在面试的过程中,会经常性的被问到,比如,Redis 为什么这么快...为什么Redis6.0之前,不引入多线程? 了不起说说自己的理解,其实Redis 6.0之前不引入多线程的主要原因与其设计目标和性能考虑有关。 首先,Redis的设计目标是高性能和高并发。...既然我们提到了在6.0之前不引入多线程,那么在 Redis6.0 之前为什么不引入消息队列呢? 在 Redis6.0 之前为什么不引入消息队列呢?...Redis为什么会在6.0版本引入多线程呢?...关于 Redis6.0 为什么使用多线程,你了解了么?

38410

基础类型概述

Integer和Long提供了reverse  方法进行翻转 按照字节翻转,reverse是按照位翻转,最后一位变成最先一位 reverseBytes 是按照字节翻转,也就是最后一个字节变成了最先的一个字节...循环右移 对应下面一个图,从最右边(最低位)移出,从左边最高位在进入 Integer和Long提供了循环右移和循环左移 最高1 位 和 最低 1位 前导零 后置零 这几个方法只需要知道用法含义...,实现的逻辑背后都是有理论依据的 数据都是二进制形式左边为高位  右边为低位从最左边也就是最高位  往右边挨个位查找,只要找到了这个 1  所有的其他位都置零  得到的这个数就是最高1 位的数值从最右边也就是最低位...  往左边挨个位查找,只要找到了这个 1  所有的其他位都置零  得到的这个数就是最低1 位的数值 highestOneBit表示从最左边查找第一个1,那么第一个1 左边,肯定全部都是0这些0 就是numberOfLeadingZeros...divideUnsigned(dividend, divisor)  求商,也就是取整 第一个参数除以第二个参数的商remainderUnsigned(dividend,divisor)求余  第一个参数

52430
  • 「硬核JS」令你迷惑的位运算

    好像有规律,我们试了几次之后发现按位非的最终结果始终是对原数值取反并减一,如下 let a = 1 console.log(~a == (-a) - 1) // true // 得到 ~x = (-x...) - 1 知道这个之后,我们遇到按位非操作符后可以根据这个规律来算结果,会比转二进制计算那样方便些 那么又有人说了,既然和 (-x) - 1 是一致的,那么为什么还要用按位非呢 很简单,原因有二,第一是位运算的操作是在数值底层表示上完成的...,如下所示 ~~3.14 == 3 很多人知道这样可以取整,但是由于不知道具体是为什么而不敢用,所以我们来解释下为什么它为什么可以取整 上面我们说过,在 JS 位运算中,并不会用 64 位来计算,它会先在后台把值转换为...的幂时,用 n & (n-1),如果 你是 2 的幂,n 减 1 之后的二进制就是原来的那一位 1 变成 0,后面的 0 全变成 1,这个时候再和自身做按位与对比时,每一位都不同,所以每一位都是 0,即最终结果为...取整的时候我们也可以使用按位或取整 1.111 | 0 // 1 2.234 | 0 // 2 如上所示,只需要将小数同 0 进行按位或运算即可 原理也简单,位运算操作的是整数,相当于数值的整数部分和

    1.8K20

    【白话模型量化系列一】矩阵乘法量化

    以现在最常用的Transformer模型来举例,在使用CUDA推理加速库(例如LightSeq)之后,矩阵乘法的占比高达将近90%。...然后整数矩阵 的数值范围其实就是有符号整数的表示范围 , ,为了实现的简单,我们只量化到 ,这样就和 一样关于零点左右对称了。...我们令 ,用来表示int8的数值范围,如果 ,那就是int4的范围了。 接着整数矩阵 就可以表示为 ,也就是将浮点数区间 里的数字等比例映射到整数区间 ,然后向最近的整数取整。...但是注意 是取过整的,所以还原回去的 并不完全等于原始的 ,是有误差的。...最后在计算完 整数矩阵乘法结果之后,加上这个列元素之和就行了,你可以将其理解为残差项。

    1K20

    彻底搞懂Javascript 浮点数

    前言 前段时间, 在群里跟 Peter 说到JS的浮点数问题。 他问我, 为什么 0.1 + 0.2 !== 0.3, 而 0.05 + 0.25 === 0.3 ?...但是, 小数十进制转化为二进制的计算方法是, 小数部分*2, 取整数部分, 直至小数部分为0, 如果永远不为零, 在超过精度时的最后一位时0舍入1。...【这个例子引用自[2]】 0.57这个数值在存储时, 本身的精度不是很准确, 我们用toPrecision这个方法可以获取小数的精度。...注意: 在计算的中间过程不要使用,只用于最终结果。 不同点就需要注意一下: toPrecision 是处理精度,精度是从左至右第一个不为0的数开始数起。...toFixed 是小数点后指定位数取整,从小数点开始数起。 两者都能对多余数字做凑整处理,也有些人用 toFixed 来做四舍五入,但一定要知道它是有 Bug 的。

    1.7K10

    基础类型BigInteger简介

    ,组合成int数组 如果是一个负数,会先得到真值的绝对值 如果有前导零,还会去掉所有的前导零 而且,是大端排序,大端排序,大端排序的把最终的数据存储起来 也就是说int数组中保存的都是真值的绝对值...bitsPerDigit 就是每个数字需要的比特位数乘以1024后在取整之所以乘以1024然后在取整应该是为了简化运算,这个数必然要是2的N次方,计算机移位最快当然,这个地方乘以1024 实际使用的时候必然也还得除以...需要处理的数字的长度 //bitsPerDigit 里面记录了每个进制1位数需要的二进制位数,但是放大了1024倍,所以还要除以1024 也就是右移10 //真正的值可能是小数个,除以1024之后变成了取整了...防止1个不足32位的时候,就会变成0了所以numBits加上31 之后再除以32 int numWords = (int) (numBits + 31) >>> 5; //此时创建真正的保存数据的...截取后转换为数值,然后destructiveMulAdd  这个方法就是第一个参数的数,乘以第二个参数,然后加上第三个参数 就是这样一个过程 ( ( (1*10)+2 )*10+3 )*10

    2.6K40

    PC逆向之代码还原技术,第六讲汇编中除法代码还原以及原理第一讲,除数是2的幂

    以及程序中的向零取整. 2.除法的扩展知识 2.除数为2的幂 四丶除法第一讲总结 1.除数是2的一次方 2.除数为2的幂总结: 一丶除法简介 除法,在汇编中是 DIV 指令 跟 IDIV指令,跟乘法一样...首先画出一个坐标系,如下: -∞ 0 +∞ 向下取整: 向下取整就是往负无穷方向接近 x的数值. 不大于x的最大整数....-3.5向下取整就是-4 向上取整就是-3 在C语言中是 floor函数. 向下取整也称为地板取整 向上取整: 向上取整就是往正无穷接近 x的数值. 不小于x的最大整数....例如3.5 向上取整就是4 向上取整在C语言中是ceil()函数.也成为天花板取整 向零取整: 向零取整就很简单了.可以理解为 正数是向下取整, 负数是向上取整.反正靠近0就可以....向零取整是计算机整数除法规定的.计算机会使用这种除法.也称为截断除法. 疑问? 为什么要学习取整.虽说取整很简单.原因是在计算机中.除法都是向零取整的除法. 例如我们上面说过的向下取整.

    80910

    比特币像个醉汉,S2F模型是它回家的路!

    让我们来看看S2F的数值。 黄金拥有最高的S2F,它达到62,它需要花费62年才能生产出当前的黄金库存。白银排第二位,S2F是22。高的S2F让它们变成货币商品。...这就是为什么“减半”对于比特币货币供应和S2F很重要。减半导致供应增长率(比特币的背景下通常称为“货币通胀”)变成梯状,而不是平滑变化。 2 S2F和价值 在2019年3月,我们做了一个实验。...模型 S2F VS市值 的第一个散点图显示,最好使用对数值或轴来表示市值,因为它跨越了8个数量级(从1万美元到1000亿美元)。...S2F和市值之间的关系是偶然产生的,这种可能性几乎为零。当然,其他因素也会影响价格,例如监管、黑客攻击等,这就是为什么R2并不总是100%的原因,并非所有点都落在直的黑线上。...协整方程随时间的估计 在上图中,我们可以看到协整方程是趋向于零的。虽然它在形式上可能不是静止的,但它确实在接近平稳状态。 具有K个内生变量和r个协整方程的VECM伴随矩阵具有Kr单位特征值。

    1.1K30

    python小数的进位与舍去

    从统计学的角度,“奇进偶舍”比“四舍五入”更为精确:在大量运算时,因为舍入后的结果有的变大,有的变小,更使舍入后的结果误差均值趋于零。...数值修约(rounding off for values)——在进行具体的数字运算前,通过省略原数值的最后若干位数字,调整保留的末位数字,使最后所得到的值最接近原数值的过程。 ​...无效操作(Invalid Operation)同样也不同于算术溢出(可能返回无穷大)和算术下溢出(可能返回最小的一般数值、特殊数值、零等)。...以32位IEEE单精度浮点数的NaN为例,按位表示即:S111 1111 1AXX XXXX XXXX XXXX XXXX XXXX,S为符号位,符号位S的取值无关紧要 在python中进行精确的数值运算时...,原因就在于取整规则是采用了奇进偶舍(四舍六入)的方式,简单来说就是,整数部分为奇数,四舍五入.如果是偶数,就采用五舍六入的方式,而这个规则,就属于数值修约的规则 二.quantize quantize

    1.7K10

    VB中的随机数理论专题

    作用:增大数字出现的不同的概率 为什么系统时间是不同的? 时间每时每刻都是不同的。 时间的单位:秒、毫秒、微秒 二、VB中的小数表示形式 VB中小数输出后,表示的特点是没有整数部分。...举例小数,数学中的小数0.9 在VB中输出会变成.9表示0.9 VB中科学计数法表示方法: 4.032E-02就是4.032*(10的-2次方) 10的-2次:1/100 10的-1次:1/10 补充:...show 三、rnd随机数表示范围 Rnd代表随机数 随机数的范围:0<=rnd的范围<1 范围在数学中的表示: [0,1)就是0<=rnd<1 [表示包含,用)表示不包含,用,表示从几到几 5数值...<=8 用数学表示(5,8] 10数值<99 用数学表示(10,99) 什么是向下取整?...数学中的向下取整 向下取整:获取比某个数值小的整数 5.67向下取整5 6.37向下取整6 0.68向下取整0 -2.45向下取整-3 -6.555向下取整-7 在VB中用int函数表示向下取整运算

    88620

    Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    setScale(int newScale, int roundingMode)第一个参数为0,第二个为取舍模式。...保留精度 四舍五入保留几位小数 /** * 四舍五入保留几位小数 * @param scala 保留几位 * @param num1 对应数值 * @return...)四舍五入,2.35变成2.4 * setScale(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍 */...BigDecimal divisor) 取余:BigDecimal[] divideAndRemainder(BigDecimal divisor),返回一个BigDecimal数组,返回数组中包含两个元素,第一个元素为两数相除的商...与其他数据类型转换 四舍五入保留几位小数返回字符串 /** * 四舍五入保留几位小数返回字符串 * @param tScala 保留几位 * @param num1 对应数值

    2.1K20

    无符号数和有符号数

    无符号数 十进制——>R进制(整数部分小数部分分开转化,取到的第一个余或第一个整最接近小数点) 将十进制的217转化为二进制数(除基取余法) ?...所以转换结果为11011001 将十进制的0.6875转化为二进制数(乘基取整法) ? 转化结果为0.1011 所以217.6875转成二进制是多少你知道了吗?...原码:符号位用0表示正1表示负,数值位与真值一样 反码:符号位用0表示正1表示负,正数时数值位还是真值,负数时数值位是真值的按位取反 补码:符号位用0表示正1表示负,整数补码的数值位和真值相同,负数补码的数值位是真值的按位取反...,在最低位加一 运算:原码运算复杂,首先需要判断是否同号,并且零的表示有两种。...反码零的表示也有两种,运算时符号位与数值位一同进行运算。当符号位出现进位时,需要将进位加到运算结果的最低位,才能得到最后结果。而补码中0的表示只有一种,加法计算的规律也和无符号数一样。

    3K20

    Oracle应用实战六——函数+集合

    函数 字符函数 接收字符输入返回字符或者数值,dual是伪表 1. 把小写的字符转换成大小的字符 upper('smith') 2. 把大写字符变成小写字符 lower('SMITH') 3....字符串替换,第一个参数是源字符串,第二个参数被替换的字符串,第三个是替换字符串 replace('hello', 'l','x') ❖ 数值函数 1.四舍五入函数:ROUND() 默认情况下ROUND四舍五入取整...2.数值截取:TRUNC(),默认全部去掉小数,也可以指定保留的位数 3.取余数:MOD() ❖ 日期函数 Oracle中提供了很多和日期相关的函数,包括日期的加减,在日期加减时有一些规律 日期 –...10以下的月前面被被补了前导零,可以使用fm去掉前导零 TO_CHAR还可以给数字做格式化 范例:把雇员的工资按三位用“,”分隔,在oracle中“9”代表一位数字 如果在钱的前面加上国家的符号可以使用...TO_NUMBER:数值转换函数 TO_NUMBER可以把字符串转换成数值 3.

    1K50

    MATLAB中向量_向量法表示字符串

    例如: 其中第一个数字是起始值,第二个数字是终止值,第三个数字是这个区间向量的个数 函数zeros(1,n):创建全零的向量 例如: 其中第一个数字是数组的行数,第二个数字是数组的列数。...由于向量是一维的,所以第一个每次输出都是一 length():返回数组行列大小的最大值,对于向量,表示其长度 例如: 索引向量 通过在括号内输入零个(全部输出)或多个元素的索引值,可以单个或分组访问向量中的元素...可以通过以下两种方式中的任意一种访问向量中的元素: 使用数值向量和逻辑向量。 数值索引 通过在括号内输入零个或多个元素的索引值,可以单个或分组访问向量中的元素。...例子: 另外,索引环境中的关键字end表示向量中的最后一个元素的索引 **注意:**在Matlab中在赋值操作中输入的索引超过当前的边界,Matlab会自动扩列,空位用零补齐,比如,...向上取整、向下取整、向零取整 切片 切片操作能将一个向量中的指定元素复制到另一个向量的不同位置。

    2.4K30

    位与模的对白

    ,其他的数字都朝左平移2位,最后在低位(右侧)的两个空位补零。...>> 2,则是将数字11右移2位 计算过程 11 的二进制形式为: 0000 0000 0000 0000 0000 0000 0000 1011 然后把低位的最后两个数字移出,因为该数字是正数,所以在高位补零...则得到的最终结果是 0000 0000 0000 0000 0000 0000 0000 0010 转换为十进制是2 数学意义 右移一位相当于除2,右移n位相当于除以2的n次方(取整)。...如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。...[应用.png] 获取二进制中最右边的 1:n & (-n) 这个方式主要是用于统计一个整数值的二进制数存在多少个1还是多少个0 在leetcode上面的代表性例题,列举的题目都是比较简单的,主要是体验手感

    66700

    3寒假专辑:一、C语言基础知识

    并且第一个必须为字母或者是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。...018的数值是非法的,八进制是没有8的,逢8进1。 b、C语言中的十六进制规定要以0x开头。 2)小数的合法写法:C语言小数点两边有一个是零的话,可以不用写。...1.0在C语言中可写成1. 0.1在C语言中可以写成.1。 3)实型数据的合法形式: a、2.333e-1 就是合法的,且数据是2.333×10-1。 b、考试口诀:e前e后必有数,e后必为整数。...变成(2+3)再运算。...总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。

    55420

    python中取整数的几种方法(python怎么取整)

    一、向零取整:int() python自带的int()取整 >>> int(1.2) 1 >>> int(2.8) 2 >>> int(-0.1) 0 >>> int(-5.6) -5 总结:int()...函数是“向0取整”,取整方向总是让结果比小数的绝对值更小 二、向上取整:math.ceil() >>> import math >>> >>> math.ceil(0.6) 1 >>> math.ceil...(1.1) 2 >>> math.ceil(3.0) 3 >>> math.ceil(-0.3) 0 >>> math.ceil(-5.1) -5 总结:math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整...> math.floor(-0.9) -1 >>> math.floor(-3.0) -3 >>> math.floor(-3.1) -4 总结:math.floor()严格遵循向下取整,所有小数都是向着数值更小的方向取整...>>> 5%-2 -1 >>> 5%(-3) -1 >>> 5.2%-2 -0.7999999999999998 >>> -8%-3 -2 >>> -2%-8 -2 >>> -2%-9 -2 懵了,为什么不是

    5.4K30
    领券