首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS算法探险之整数

    从今天起,我们又重新开辟了一个新的领域:JS算法编程。为什么,会强调 JS 呢。其实,市面上不乏优秀的算法书和资料。...JS中查看一个正整数的「二进制格式」 (number).toString(2) number前后有括号,这涉及都JS优先级了 4. 用i>>1来计算"i/2",而且还是下取整。...二进制 JS中查看一个正整数的二进制格式 (number).toString(2) 例如:(3).toString(2) ==> '11' 在JS中, 用i>>1来计算"i/2" 例如:4>>1 ===...如果前一位置有进位,还要加上进位。...也就是说,在处理完,它们各自「共有长度」后,长的那个子串就直接拼接到处理后的子串上 JS中获取字符串中位于index处字符的ASCII码 str.charAt(index) 产生进位的条件 (digitA

    3.1K10

    js设置百分比保留两位小数

    CreateTime--2017年8月23日11:03:31 Author:Marydon js设置百分比保留两位小数 错误用法:   var percent = (num1/num2) * 100%;...正确用法: var percent = Math.round(num1/num2 * 10000) / 100 + "%"; 说明:   1.Math.round(num)表示对num进行四舍五入操作,只保留整数位...,如num=0.49,返回结果为0;如num=0.51,返回结果为1;   2.将结果转化为百分比,并保留2位小数:   思路:     2.1 将num1/num2的结果放大100倍;     2.2...对放大结果保留2位小数。     ...2.3 保留2位小数,需要用到Math.round(num)函数;     2.4 因为Math.round(num)函数只保留整数位,所以需要至少再次放大100倍;     2.5 取整后,除以再次放大的倍数

    6.3K10

    计算机各种进制之间的转换,外行人也能看的懂

    目录 一、进位计数制  二、计算机中常用的几种进制  三、进位计数制相互转换 1、二进制转八进制 2、二进制转十进制  3、二进制转十六进制 4、八进制转二进制 5、八进制转十进制  6、八进制转十六进制...按进位的方法进行计数,称为进位计数制。在计算机中采用的是主要是二进制,此外还有八进制、十进制、十六进制的表示方法。在日常生活中,我们最常用的是十进位计数制,即按照逢十进一的原则进行计数的。...三、进位计数制相互转换 在线进制转换OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档,在线 PHP API文档...,在线 Node.js API文档,Less CSS编译器,MarkDown编译器等其他在线工具 https://tool.oschina.net/hexconvert这里附上在线进制转换工具,方便大家自我练习时验证计算结果是否正确...小数部分一般保留三位,末位四舍五入。 例如:十进制数18.55 转十六进制数,结果为:12.852(H) 这里我个人觉得必须掌握十进制转二进制方法。

    6.3K10

    leetcode 66 | 加一

    给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。...分析:这道题是不是看第一眼是不是就想把数组转化为整数,然后再用这个整数加1,再将这个结果转化为数组~那可就调入这道题的陷阱里了,这样做是不行的,因为这个整数可以很大,大的超过int的范围,甚至超过long...那进位怎么处理呢?...其实也很简单,因为个位加1后大于等于10,所以个位的数保留相加之和的个位,然后定义初始进位carry为1,从result[digits.length-1],即十位开始,当carry !...=0时,就继续上前进位,本身保留与进位相加结果之和的个位即可,最后判断result[0],即第一位是否为0,若不为0,则直接返回result,若为0,则返回从索引1到索引digits.length的子串即可

    1K30

    为什么(2.55).toFixed(1)等于2.5?

    正文从这里开始~~ 上次遇到了一个奇怪的问题:JS的(2.55).toFixed(1)输出是2.5,而不是四舍五入的2.6,这是为什么呢? 进一步观察: ?...这可能是因为V8里面对JS数据的表示都是继承于根类Object的(注意这里的Object不是JS的Object,JS的Object对应的是V8的JSObject),这样可以做一些通用的处理。...如下代码所示: int point = -exponent; // exponent = -51// fractional_count表示需要保留的小数位,toFixed(1)的话就为1for (int...按照源码的判断,如果剩下的尾数第1位不是1就不进位,由于剩下的尾数第1位是0,所以不进位,因此就导致了(2.55).toFixed(1)输入结果是2.5....这个可能会造成什么影响呢,会不会导致原本不该进位的进位了?加上一个14位的小数可能会导致13位进1。

    1.7K20

    JavaScript之0.1+0.2=0.30000000000000004的计算过程

    0.30000000000000004的过程,所以我写了此文补充下 正文 console.log(0.1+0.2) //0.30000000000000004 将 0.1 转为二进制: 没有整数部分...---- 所以用一句话来解释为什么JS有精度问题: 简洁版: 因为JS采用Double(双精度浮点数)来存储number,Double的小数位只有52位,但0.1等小数的二进制小数位有无限位,所以当存储...考虑周到版: 因为JS采用Double(双精度浮点数)来存储number,Double的小数位只有52位,但除最后一位为5的十进制小数外,其余小数转为二进制均有无限位,所以当存储52位时,会丢失精度!...3FC9999999999999) 得: 3.00000000000000044408920985006E-1 等于 0.30000000000000004 4408920985006 保留小数点后...蹊跷在 二进制小数相加转成 Double 的过程 上,也就是舍去 53 位,并进位会导致误差: 进位后的 SEM SEM = 0011111111010011001100110011001100110011001100110011001100110100

    1.7K30

    【优秀题解】题解 1178: 三进制小数

    0,小数部分为0.75 ②:0.75 * 3= 2.25 整数部分为2,小数部分为0.25 ③:0.25 * 3= 0.75 整数部分为0,小数部分为0.75 ④:0.75 * 3= 2.25 整数部分为...2,小数部分为0.25 ............. (3):把整数部分写下来为0202......这就是0.25转换为三进制后,对应小数点后面的数; (4):我们假设精度为小数点后面三位,则0.25-...--->0.021,比方10进制数,大于等于5的进位,这里3进制数,就是大于等于1.5的进位,很显然0.0202保留三位小数就是 0.021; (5):题目要求保留小数点后面10位,所上面求整数部分过程要求...11次; (6):最后进位(满3进1),注意:如三进制小数0.22222,要求保留4为小数的话,不是简单的向前面一位进1就结束,(因为进1后为0.2223,三进制是不能有3的,故满三还得进1); 参考代码...if ( A[10] >= 1.0 * jinzhi / 2 )//三进制的‘四舍五入’ A[9] += 1; for ( int j = 9; j > 0; j-- )//进位

    1.9K30

    string类练习题

    输出描述: 输出一个整数,表示输入字符串最后一个单词的长度。...你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。...计算两个对象的和,用carry 记录是否需要进位. 将和的结果尾插入sum对象(用于保存最后的和的输出结果). (1)如果对象1没有走完,对象2已经走完,则对象1剩余部分+进位继续处理尾插入sum对象...(2)如果对象2没有走完,对象1已经走完,则对象2剩余部分+进位继续处理尾插入sum对象. 细节处理:最后一个数也可能进位,例如99+1=100. 将计算结果反转. 为何要反转?...进位数说明: 题目要求一个结点只能存个位数,所以需要保留进位数到下一个结点.

    48110
    领券