Julia主要用于科学计算,所以对于数据类型的支持是相当完备的…
有过编程开发经验的人,都知道编程语言都离不开整数浮点数… 下面我们就从这两方面入手。

  • typemin()可以查看数据类型的最小值
  • typemax()可以查看数据类型的最大值
  • bitstring()可以查看数的二进制表示
  • typeof()可以查看任意对象的类型

1. 整数(和布尔)类型

Julia是支持无符号整数有符号整数的…,在Julia中,布尔类型是可以和整型相互转化的。(Pythoner 哭晕在厕所里…)

类型 符号 比特位 最小值 最大值
Int8 8 -2^7 2^7-1
UInt8 8 0 2^8-1
Int16 16 -2^15 2^15-1
UInt16 16 0 2^16-1
Int32 32 -2^31 2^31-1
UInt32 32 0 2^32-1
Int64 64 -2^63 2^63-1
UInt64 64 0 2^64-1
Int128 128 -2^127 2^127-1
UInt128 128 0 2^128-1
Bool 8 false(0) true(1)

1.1 整数类型的特点

对于Julia的整数类型,我们需要考虑两个方面:

  1. 有无符号
  2. 位数

Julia在确定字面值的过程中:

符号上:十进制数自动确定为有符号整型,其他进制的数处理为无符号整数。
位数上:十进制数会默认选择与OS的位数保持一致,若数字过大,则会选择更大的位数;而对于其他进制的数,则依据值的大小选择恰当的位数。

根据需要,我们可以使用:

  1. unsigned() ----- 将有符号数转为无符号数,忽略负值检查;
  2. signed() -------- 将无符号数转为有符号数,忽略范围越界;

这两个函数在转换时会讲原值变成位数相同的无符号或有符号数。慎用!!!


1.2 进制问题
  1. 0x ---- 表示十六进制数
  2. 0b ---- 表示二进制数
  3. 0o ---- 表示八进制数

需要强调的是:这里的x,b,o只能是小写字母。

无符号整数会以十六进制的方式展示

1.3 布尔类型(bool)

不能将整型当作bool使用


2. 浮点类型

类型 精度 比特位 最小值 最大值
Float16 half(半精度) 16 -Inf16 Inf16
Float32 single(单精度) 32 -Inf32 Inf32
Float64 double(双精度) 64 -Inf Inf

浮点类型是按照所能表示的精度来划分的。

Float16基本上用不到,根据官方文档的说明,Float16是使用Float32进行模拟实现的。如何理解这句话呢?即就算我们遇到Float16的数值,其在内部运算时依然按照Float32进行。

2.1 精度及eps函数

我们知道计算机内部都是二进制的,逻辑判断非常简单(非0则1),但是在表达力方面还是有所欠缺的。浮点数在计算机中基本无法准确的表示。

机器精度:计算机中两个相邻可表示的浮点数之间的误差。
Julia 提供了eps()函数 帮助我们去查看1.0和下一个Julia能正确表示的浮点数之间的差值。更加详细的内容可以去REPL中的帮助模式中查看。

2.2 零及zero(),one()函数

在Julia中,浮点数中有两个零:正零(0.0)和负零(-0.0)

julia> 0.0 == -0.0
truejulia> bitstring(0.0)
"0000000000000000000000000000000000000000000000000000000000000000"julia> bitstring(-0.0)
"1000000000000000000000000000000000000000000000000000000000000000"

虽然两者相等,但是我们发现其在内存中的表示却不一样。这自己挖坑自己跳的节奏啊…
为了避免出现问题,Julia专门为我们提供了两个有趣的函数:

  1. zero(x): 生成x的0;
  2. one(x): 生成x的1;

2.3 特殊的浮点数
Float16 Float32 Float64 解释 描述
Inf16 Inf32 Inf 正无穷 大于该类型所能表达的所有有限浮点值
-Inf16 -Inf32 -Inf 负无穷 小于该类型所能表达的所有有限浮点值
NaN16 NaN32 NaN Not a Number 不和任何浮点数(包括自己)相等

需要我们注意以下几点:

  1. 有了无穷的存在,Julia中的「浮点运算」就可以正常的除零操作(不推荐使用);
  2. 通过**isfinite(x)isinf(x)**来判断是否是无穷;
  3. 通过**isnan(x)**来判断是否是NaN;

你会不会有Inf16 > Inf 的疑问呢?

julia> typemax(Float16) < typemax(Float64)
false

  1. 大数运算使用BigInt,BigFloat

Julia系列2nd -数据类型相关推荐

  1. 免费视频教程!零基础学Python系列(7) - 数据类型之bytes(上)

    本节我们开始讲python数据类型之bytes类型,我们分为上下两个章节. 你可以直接到这个页面观看本节视频:免费视频教程!零基础学Python系列(7) - 数据类型之bytes(上) 以下为对应的 ...

  2. oracle number对应java什么类型_JVM系列之数据类型

    码神手记--资深攻城狮的私房笔记.微信公众平台/知乎/头条/简书同步发文,关注.转发.收藏. 数据类型.类加载机制.JVM内存模型,很多人在面试中都会遇到这一类的问题.大部分人都是死记硬背,背完就忘. ...

  3. mysql decimal_MySQL系列之数据类型及约束

    点击关注 不迷路 前言 上篇咱们介绍了MySQL的基本情况和建库建表语句,当然必不可少的增删改查中的增删改也一并介绍了一下,此处再次强调语句,删库需谨慎,三思而后行. 内容简介 本篇会分两部分介绍: ...

  4. julia系列1:介绍与安装

    参考 https://zhuanlan.zhihu.com/p/41953244 还有这篇教程:https://zhuanlan.zhihu.com/p/60889456 详见julia中文文档:ht ...

  5. MySQL系列:数据类型、运算符及函数(5)

    1. 数据类型 MySQL支持多种数据类型,主要有数值类型.日期/时间类型和字符串类型. (1)数值类型:包括整数类型:TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT,   ...

  6. MySQL不同数据类型如何表示_MySQL系列(二)--数据类型

    如何选择优化的数据类型: 当一个列有多种数据类型可以选择,选择顺序:数字类型.日期/二进制类型.字符类型,相同级别的数据类型,优先选择占用空间小的类型 1.通常更小的更好 相同级别的数据类型,选择占据 ...

  7. 88是python语言的整数类型_Python学习系列之数据类型(三)

    一.Python中的数据类型 常用数据类型: 整数类型:int 浮点类型:float 布尔类型:bool(True,False) 字符串类型:str 1.整数类型: 英文未integer,简写为int ...

  8. 10.Redis系列之数据类型GeoSpatial

    本文讲解redis中对经纬度操作支持的数据类型GeoSpatial 1. geoadd经纬度添加 我们打开https://lbs.amap.com/tools/picker进行坐标拾取,分别拾取静安区 ...

  9. julia系列8:交互界面

    1. Interact 1.1 安装 using Pkg;Pkg.add("Interact");Pkg.build("Interact") using Web ...

最新文章

  1. 某女程序员吐槽自己被男同事集体排挤!一个人吃饭,一个人敲代码!深深感觉到世界的恶意!...
  2. nginx 带宽_Nginx优化配置,轻松应对十万并发
  3. mysql PHP注册代码_求分享简单的php注册+mysql数据库登录源码
  4. Arachni web扫描工具
  5. flink checkpoint 恢复_Flink断点恢复机制
  6. Android开发之SDK开发获取资源id报错的问题
  7. CNN分类,ResNet V1 ,ResNet V2,ResNeXt,DenseNet
  8. Simulink框图和S-函数
  9. Laravel源码解析之事件系统
  10. Bootstrap HTML 编码规范之字符编码
  11. 18.输入和输出函数
  12. 二叉树非递归程序c语言,二叉树非递归遍历C语言实现
  13. 利用UCSC Xena做TCGA数据库的生存曲线分析
  14. 用blockly制作诗词学习游戏
  15. JCMsuite应用:太阳能电池的抗反射惠更斯超表面模拟
  16. MemSQL性能测试结果
  17. 14-HBase的介绍、数据模型以及架构模型
  18. java 笔记本i7 i5_笔记本i5处理器和i7处理器哪个好
  19. 【Linux】服务远程连接失败解决方法
  20. HTML非遗文化网页设计题材【京剧文化】HTML+CSS(大美中国 14页 带bootstarp)

热门文章

  1. 【Android2 2及以上】如何允许你的应用移动到SD卡
  2. http是什么_作用以及报文详情_http的常见状态码
  3. Ettercap嗅探
  4. 假如有人欺骗了你•••
  5. 周鸿祎:360这个模式比较独特 全球就我们一家
  6. 一致性hash和普通hash区别?
  7. 【引语练习题】直接引语为疑问句转为间接引语时注意
  8. java界面设计器_java 图形界面设计制作计算器
  9. python中strftime函数_Python strftime()用法及代码示例
  10. MATLAB生成伯努利图分布,C++ - 随机生成器 伯努利分布(bernoulli distribution) 的 详解 及 代码...