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

多数编程语言里的0.1+0.2≠0.3?

作者 | Parul Malhotra 译者 | Raku 出品 | AI科技大本营(ID:rgznai100) 我们从小就被教导说0.1+0.2=0.3,但是在奇妙的计算机编程世界里面,事情变得不一样了...我最近在用JavaScript编程,正在阅读数据类型的时候,我注意到0.1+0.2不等于0.3的奇怪现象。我求助于Stack Overflow并找到了几条有帮助的信息,让我们来看一下: ? ?...当你使用Java或者C编程的时候,你一定会意识到不同的数据类型用来存储不同的值,我们在前面的讨论中考虑的两种数据类型是整型与浮点型。 整形存储整数,浮点型存储小数。...不像其它编程语言,JavaScript没有定义不同类型的数字数据类型,而且始终遵循国际IEEE 754标准将数字存储为双精度浮点数。...这种格式以64位存储数字,其中数字(小数)存储在第0到51位,指数存储在第52到62位,符号存储在第63位中。 ? 让我们以IEEE754标准表示64位中的0.1。

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

    C语言中的强符号和弱符号

    一、强弱符号 强弱符号针对的是处于同一工程下在不同源文件下定义的全局变量符号,链接器只处理global的符号而不处理local的符号。...链接的核心是符号的重定位,在符号引用的地方找到符号定义的地方,包括函数产生的符号和全局变量产生的符号。 强符号:函数和初始化的全局变量所生成的符号。 弱符号:未初始化的全局变量所生成的符号。...很多情况下写出的代码会出现链接的错误,符号重定义,这是因为在不同的源文件中定义了同名的全局变量并且都进行了初始化。...那么新的问题是: (1)出现强符号和弱符号,选择哪一个? (2)若出现多个同名的强符号,最终怎么选择? (3)若出现多个同名的弱符号,最终会怎么选择?...显然需要这样的一套规则来约束这些可能存在的问题。 二、强弱符号的使用规则 (1)如果出现多个强符号,最终会出现链接错误即符号的重定义。 (2)如果出现强符号和弱符号,编译器最终会选择强符号。

    1.6K20

    世界上最好玩的6种表情符号编程语言

    谁能想到我们最喜欢的表情符号可以用来设计新的编程语言?聪明有才华的人已经想象并开发出了成熟的编程语言,我们可以用它来编写表情符号和表情符号。...这些基于表情符号的语言大多是深奥的编程语言( esoteric programming language),称为esolang。然而,这些语言相对来说比其他语言更容易理解。...让我们看看这五种可以使用表情符号和表情符号来编程的语言。 Emoji Emoji使用一个预定义的表情符号列表来生成语言命令,这些表情符号可以作为标志,Emoji是一个基于栈的语言。...Emojicode Emojicode是一种面向对象程序设计语言,我们可以用表情符号来编码,在 Emojicode,使用表情符号让编程变得有趣。它是一种强类型编程语言。...Emoji-gramming Emoji-gramming是一个基于表情符号的深奥的编程语言,这种语言总共有25个变量和4个命令,它们都由特定的表情符号表示。表情符号使用心型符号作为常量,例如: ?

    1.1K20

    【编程基础】c语言中获取整数和浮点数的符号位

    为什么要获得符号位 很多时候,我们需要判断数值的正负,来做相应的逻辑处理。条件判断语句可以很好的完成这个需求。...,或是计算结果的符号位变化。...而数值的符号位已经被存储在了数值的最高位,可以利用这点来避免条件判断。 2. 如何得到符号位 可能有很多种方法。但是通过移位来获得符号位是最直接想到的。...移位有左移右移, 右移因为有符号位的问题。所以,有2个情况,有符号右移和无符号右移。有符号右移空位补符号位,无符号右移空位补0。...((signed char*) &x)[sizeof(x) - 1] 我们假定小端存储模式,那么符号位就在char数组的最后一个空间。我们拿到了有符号位的char数据并且当做有符号数来处理。

    2.2K80

    空白符号在线复制_html里空格怎么表示

    大家好,又见面了,我是你们的朋友全栈君。 空格网名符号复制以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!...空格网名符号复制 搜狗输入法,v+1 在按下d 就是空格 :这里空格【】 这里还有一个空格: []弄了,在游戏里就是空白名 空格符号复制 法一:搜狗输入法 将半角转换全角,快捷键(Shift+空格键...祝你游戏愉快(*^__^*) 嘻嘻 cf空格名字怎么打 复制 带符号的 快点 CF游戏里名字打空格方法: 第一步:输入法切换到只能ABC(相信每台电脑上都有这个输入法吧) 第二步:按a键(其实随便输个英文字母都可以...设置方法也挺简单就是那个,QQ昵称的空白代码很多人不知道怎么输入。咗嚛本经验以最新QQ版本为例,其他操作也一样哈, 括号里的【 】复制粘贴到昵称修改就是空白的了。...怎样复制空格作为网名 在搜狗输入法里找空白字符 空格网名怎么打 如果只是按空格键的话,是不可行的。会提示昵称不能为空。但网上那些延长空格的符号,我觉得出现在空间等其他地方效果也不好。

    6.7K30

    我对Linux里的符号链接(软链接)和硬链接的认识

    然后又分别建立了a的硬链接a2,b的符号链接b2 由图中即可看出区别: 1.a和a2的 inode号相同,b和b2的inode号却不同 2.a和a2均是普通文件 ,即以 -打头,而b2则是以l打头,说明它是一个符号链接...类似于Java里的2个个字符串a和b,它们的值都是“abc”,均指向常量池的同一个地方。所以每当建立一个硬链接时候文件的链接数都会加1。...,以及它们的inode均不同,由此可以得知符号链接是单独的一个文件,它里面存放的内容如下图维基百科:即它文件里存放着源文件的路径,所以inode不同,新建符号链接数时候链接数也不会+1 4.创建硬链接时候源文件必须存在...删除符号链接的源文件之后,符号链接仍然还在,只是失效了(因为所指的的路径的文件已经被删除了)。 如下图1和2: 删除硬链接源文件a和1个硬链接a2,再cat a3发现,仍然正常。...所以不管修改哪个文件,源文件或者链接文件,文件里的内容都会同步 国外一个参考链接:https://linuxhandbook.com/inode-linux/ 本文共 743 个字数,平均阅读时长 ≈

    75130

    Linux编程(系统里的僵尸们)

    结合上图,一起理一理进程从生到死的过程: 1,从“蛋生”可以看到,一个进程的诞生,是从其父进程调用fork( )开始的。...3,刚被创建的进程都处于“就绪”状态,等待系统调度,内核中的函数sched( )被称为调度器,他会根据各种参数来选择一个等待的进程去占用CPU。...6,运行的进程跟人一样,迟早都会死掉。进程的死亡可以有多种方式,可以是寿终正寝的正常退出,也可以是被异常杀死。...这些“死亡信息”都被一一封存在该进程的PCB当中,好让别人可以清楚地知道:我是怎么死的。 那谁会关心他是怎么死的呢?...父进程可以随时查看一个已经死去的孩子的事情究竟办得如何。 可以看到,在工业社会中,哪怕是进程间的协作,也充满了契约精神。

    1.4K20

    【C语言笔记】关于有符号数与无符号数的一些总结

    有、无符号数之间的运算 有符号数与无符号数之间的运算,编译器会进行隐式类型转换。...C 语言按照一定的规则来进行此类运算的转换,这种规则称为正常算术转换,转换的顺序为: double>float>unsigned long>long>unsigned int>int 即操作数类型排在后面的与操作数类型排在前面的进行运算时...(2)将有符号数转换为更大的数据类型需要执行符号扩展,规则是将符号位扩展至所需的位数,即符号位为0时在开头添加0至所需位数,符号位为1时在开头添加1至所需位数。...其中,-128最为特殊,需要特别记住,其不遵循传统的由补码计算原码的方法。 以上就是关于有符号数与无符号数的两点总结:(1)有符号数与无符号数之间的运算,编译器会进行隐式类型转换。...(2)有符号数、无符号数转换为更大的数据类型。

    4.1K20

    如何选择编程语言以及编程语言的分类

    想了解编程语言我们先要知道什么叫做“编程”,编程的意思就是编写流程,那么只要能编写流程的语言都应该叫做编程语言。...据不完全统计,所有编程语言加起来超过600种,其中用的比较多的也就前20种语言,Python不仅是其中一种而且这两年已经稳居第一名的宝座了。...9.jpg 一、低级语言和高级语言 计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括汇编语言、机器语言以及高级语言,具体内容如下: 汇编语言 该语言主要是以缩写英文作为标符进行编写的...高级语言 所谓的高级语言,其实是由多种编程语言结合之后的总称,其可以对多条指令进行整合,将其变为单条指令完成输送,其在操作细节指令以及中间过程等方面都得到了适当的简化,所以,整个程序更为简便,具有较强的操作性...二、交互原理 编程语言承接的就是人与机器之间的交互中介,程序员通过编程语言编写一段执行命令的流程代码,这段代码在执行前会被编译成底层语言,比如python就会直接编译成C语言,C语言计算机也是看不懂的,

    12.8K00

    6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

    语言 计算机语言指用于人与计算机之间通讯的语言,也即是平时说的编程语言 编程 指令的概念很早就形成了,其实指令本身就是一种编程 一个指令替代了一组逻辑电路或者机电式/机械式中的一个计算单元 你只需要一个指令就相当于已经操作了一整个的模块...,完全就等同于乱码 难读、难编、难记和易出错 你根本不会知道到底是什么意思 随后,开始用与代码指令实际含义相近的英文缩写词、字母和数字等符号来替代描述指令代码 出现了汇编语言,汇编语言只是机器语言的助记符语言...不同的机器有不同的汇编语言 需要汇编程序翻译成计算机可以识别的二进制机器语言 本质还是面向机器的低级语言 机器语言和汇编语言都是面向硬件的具体操作的,语言对机器过分依赖,所以称之为低级语言 高级语言...为了能够更加通用的解决问题,而不是专注于硬件本身,出现了高级语言 高级语言不用关注机器的指令,使用接近人习惯的自然语言和数学语言符号 能够专注于问题本身的业务逻辑 显然高级语言也是不能直接运行于机器上的...,需要翻译程序转换为机器可以执行的目标代码程序 虽然高级语言不涉及寄存器这些东西,不需要你了解硬件 但是这是高级语言隐藏了她们,而不是说这些东西不存在不重要,所有的语言都逃不过这一关 始终是要编程机器语言的

    15.5K20

    学习R语言里的排序函数

    学习R语言里的排序函数 (生信技能树学员徐谦) 正在上5月生信入门课程的小伙伴们应该初步掌握了一些R语言的基本函数,其中有一类函数可以称为排序函数,例如周二细讲的sort,order函数,以及不常使用的...参数的更改 R语言里所有的函数都是有参数的,我们可以根据函数作者的设定,赋予不同的参数,例如查阅帮助文档,可以看到sort,order都可以设定decreasing = T或者F来控制顺序,这个大家都知道了...但是后来一想不太对,R语言中几乎所有的函数都是有严格的对象和参数要求的,如果给了它函数里没写的东西,那大部分时候就会报错,如果没报错,那就是函数接受了,当然也有其他特殊例外的情况。...而有了另外一排萝卜y后,如果x中有一样的萝卜,它会比y里萝卜的大小,x里有两个萝卜1,对应的y里的萝卜是9和6,6比9小,所以坑4排在坑1前面了。 5. 排序有什么用?...以上是R语言中基础函数中几个排序函数的用法,那排序到底有什么用呢?实际上在R语言中我个人觉得order比sort用的多,原因就是他会返回坑的位置。

    1.1K10

    c语言运算符号详细说明

    C语言中具有右结合性的运算符包括所有单目运算符以及赋值运算符(=)和条件运算符。其它都是左结合性。...判断表达式计算顺序时,先按优先级高的先计算,优先级低的后计算,当优先级相同时再按结合性,或从左至右顺序计算,或从右至左顺序计算。...C语言中的符号 运算符的种类 语言的运算符可分为以下几类: 1 算术运算符 用于各类数值运算。...4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(>)六种。...9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→,.)等几种。

    95230

    消失的编程语言

    技术不断演进,我们使用的编程语言也不例外。随着人工智能的日益普及以及它对这些语言的使用方式的影响,我们更加关注哪些语言将在未来与我们同在,哪些将逐渐退出舞台。...因为变化是唯一不变的,所以你应该远离以下这九种编程语言,它们可能不会在短期内成为主要角色。 1、R R编程语言一度急剧崛起,意图征服数据分析的编程世界。...然而,随着多年的发展,它最近开始失去对Python编程语言的地位。 作为一种编程语言,R提供了各种有价值的功能,但它目前在编程语言榜单中排名较低。它在TIOBE指数中排名第18位,不太可能再次上升。...逐渐或迟早消亡的编程语言 现在,开发人员使用各种编程语言,因为没有一种语言可以满足所有用途。随着不断的演变,随着需求变得更加复杂和要求发生变化,编程语言也在不断涌现和消失。...这里列出的编程语言受到了竞争的冲击,由于未能提供现代和相关的功能,随着时间的推移,逐渐出现了更好的编程语言,被其他语言取代了,将它们淘汰出局。

    26230

    编程语言的未来?

    方向一:编程语言的发展趋势 当前编程语言的发展趋势 多范式融合:传统的编程语言往往只专注于一种编程范式(如过程式、面向对象式、函数式等)。...未来可能的新的编程语言或编程范式 量子计算编程语言:随着量子计算技术的发展,未来的编程语言可能会引入量子计算的相关特性。例如,量子并行性、量子纠错等概念可能会成为新的编程范式。...自然语言编程:自然语言处理技术的发展可能使得未来的编程语言更加接近自然语言,使得非专业人员也能理解和编写程序。 声明式编程:声明式编程是一种让计算机理解你想要的结果,而不是如何得到这个结果的编程范式。...方向四:编程语言的教育和普及 编程语言的教育和普及问题 编程语言的教育和普及是推动技术发展和行业进步的关键因素之一。...方向五:编程语言的生态系统和工具 编程语言的生态系统和工具的发展趋势 随着技术的快速发展,编程语言的生态系统和工具也在不断演进。

    21611

    编程语言的发展

    早期的程序员意识到使用二进制进行编码很困难,于是发明了汇编语言。使用机器指令二进制编码是唯一不同是,汇编语言提供了机器指令助记符号,编程的时候,机器指令可以使用助记符号进行代替。...软件的编程依然是需要使用计算机指令,一个指令一个指令进行编程处理。因此,机器指令二进制编程和汇编语言本质上都是面向机器的编程。汇编语言程序如下,这个已经是PC时代的汇编语言程序了。...最早期的高级编程语言是Fortran,这是一种专门用于科学计算的高级语言,诞生于1957年。...但是真正主流使用的各种高级语言诞生于1970年前后,其中就包括C语言,传说丹尼斯里奇发明了C语言,然后为了证明C语言的特性,开发了Demo,就是Unix操作系统 高级语言的普及极大释放了程序员的自由性,...如果软件编程的重点是客观世界的本身,那么编程语言如何才能更好满足这一需求,于是,面向对象的编程语言应运而生。

    3K51

    编程语言的重生

    你不禁会感觉到疑惑,究竟能从那些古老的编程语言中学到些什么?下面分别带你认识一下 4 种古老的编程语言 Fortran、Perl、LISP 和 COBOL。...4.COBOL COBOL 是一种被专用于商业的通用语言,又被称为企业管理语言、数据处理语言,是最早出现的高级编程语言之一,也是世界上第一个商用编程语言。...六、写在最后:如何让编程语言屹立百年不倒 日历页随风飘扬,回首向来萧瑟处,编程语言已如耄耋老人般走过近 70 年的沧桑岁月。...虽然现在的编程语言五花八门、功能各异,那些古老的编程语言也并没有被世人遗忘,反倒是经过岁月的洗礼,变得愈发厚重。如今,编程语言和框架也被软件开发人员和商业人士津津乐道。...在如此漫长的 100 年岁月里,人们会一直需要你提供的语言吗? 这需要你并不能只关注语言的特性和语法,更需要关注开发者社区。这对于 Java、Fortran、Ruby 或其它热门语言来说都是如此。

    7610
    领券
    首页
    学习
    活动
    专区
    圈层
    工具