double类型的值怎么表示
作者:拉德布鲁赫信徒
1 引言
最近一直是心心念念,有没有更好的linux小设备,同时满足低功耗、拥有usb3.0接口与千兆网口各种需求。翻阅了站内的文章,arm架构的设备,主要有玩客云、N1、章鱼星球以及最近大火的CM311盒子。在海鲜市场混迹很久后,终于是发现了有一批之前的rk3399的板子,目前价格较为合适的有一款荣品的rk3399板子。主要包括长形的板子和一个方形的板子。
在各种纠结之下,终于是买了上图中A型号的板子,并有了以下的评测内容。
2 定位
结合目前比较热门的几款设备,主要从4个维度进行讨论,即:CPU性能、是否具有USB3.0接口、是否具有千兆网口、价格。
2.1 玩客云
玩客云目前价格应该是几个设备当中最便宜的了,三四十块钱在海鲜市场上一大把。作为入门级的armbian设备,其具有其不可替代的很多优点。当然了,其最大的优点,还是便宜,比它便宜的基本没有,比它贵的在价格上基本上都是翻番了。
除了价格之外,玩客云最大的优点就是拥有一个千兆网口,有了千兆网口就可以实现很多的事情,比如说可以当做一个FRP内网穿透的服务器,在当下的环境下足以跑满绝大多数的带宽了。但是,受限于其usb2.0接口的限制,在内网环境下想当做一个轻型nas使用的话,还是不堪其用。因此,其使用场景还是因为其usb2.0接口而受限,只能跑一下轻量的应用、通过docker建立一下网页应用,其最有意义的用法应该就是用来搭建homeassitance了。
另外一个严重的缺点在于,其所采用的S805芯片,是一颗armv7架构的32位芯片,有很多docker应用无法在这种架构上面运行,这也算的上是其一个知名的缺陷了,但是考虑到其价格,倒也无法去指责太多。
2.2 N1
N1在刚刚成为矿渣的时候,价格一度极具性价比,70元左右的价格,同时拥有千兆网口和S905芯片,还有着诸多固件可以刷,使用场景除了作为一个传统安卓盒子使用外,还可以刷成Openwrt作为旁路由使用,也可以刷成游戏机的系统,以及可以使用诸多docker应用的armbian系统,风头一时无两。但是随着时间的过去,N1已经是一个好几年前的产品了,emmc芯片的使用寿命作为我来说多少有点担忧,虽然有扩容方案的出现,但是高昂的价格,完全可以转向一个x86的诸如N2800、J1900这种设备了,而且后者灵活性更大,可以随意更换内存、硬盘,还有着这类盒子无可比拟的优点——可以刷很多nas系统,如黑群晖、unraid、truenas等。
但是综合而言,使得N1跌下神坛的关键原因,还是在于其不断上涨的价格,现在的价格通常是在120元左右。此外,其usb2.0接口也限制了其使用场景。
2.3 章鱼星球
章鱼星球是2345公司在某个特殊时期生产的矿渣,但是相对于玩客云、N1等,其市场保有量较小,想找一台差不多的机器还是相对比较困难的。其最大的优点,是拥有一颗S922芯片,比起S905强上太多了。而且其还具有一个千兆网口,使用场景可以参照前面的玩客云与N1。但是,其致命缺点,还是在于其那个USB2.0的接口。
其现在的市场价格,普遍都是在120元左右,但是这款机器由于玩的人比较少,一些固件来说相对也是比较难找的。
2.4 CM311
这个是一个系列的统称,通常都是运营商赠送的电视盒子,市场保有量大,价格也较为稳定,通常50多元都可以收到一台,运气好的话还可以收到已经刷完armbian系统的机器。其采用的是S905芯片(这个芯片有很多型号,但是性能都是大差不差),拥有百兆网口、usb2.0的接口。可玩性在站内已经有很多文章进行了详细的评测,在此就不加赘述了。
2.5 RK3399系列
这个系列的板子,通常都是一些广告机拆机下来的板子,拥有完全的接口,千兆网口和usb3.0一应俱全,这也是笔者选择这款的主要理由。对比同款芯片的开发板,其120元左右的价格对比动辄四五百的开发板,也是极具性价比的价格。此外,这款机器的性能对比价格已经飞上天际的树莓派,也是不逞多让。
但是相对于其诸多优点,其致命缺点,还是在于其资料的稀缺,刷机就成了难以逾越的一个坎,这也是开本文的一个目的所在。但是需要申明的一点是,本文的写作目的仅仅是分享而已,并无利益相关。
2.6 综合对比
1、cpu性能(由于部分机器的处理器产生了重合,这次就以处理器来进行横向对比,大家请根据处理器自行对号入座)
由于处理所跨年份较久,因此采用了benchmark4的数据,依照单核性能与多核性能整理如图所示:
由图可知,玩客云与诸多S905芯片的设备其实并拉不开太大的差距,但是32位和64位处理器的差距成为了日常使用中的一种障碍。而章鱼星球S912芯片虽然性能够强,但是在单核上反而弱于S905芯片,完全是依靠多核心才在性能上碾压了S905芯片。而作为对比的RK3399,在性能上无愧于标题中的double称号。
2、是否具有usb3.0
玩客云 | N1 | 章鱼星球 | CM311 | KING3399 |
---|---|---|---|---|
3、是否具有千兆网口
玩客云 | N1 | 章鱼星球 | CM311 | KING3399 |
---|---|---|---|---|
4、固件丰富程度
N1>CM311>玩客云>king3399
2.7 小结
综合而言,RK3399的方案是较为合理的一种方案,尤其是针对使用安卓以及linux的使用场景。此外,站内还有朋友已经写过了同款安装树莓盘当做nas使用的一种场景,有兴趣的可以去看看。
3 刷机
3.1 准备工具
硬件方面需要的是一根网线,用于刷机后连接该设备进行后续一些必要软件的安装;一个镊子,用于短接用;一根typec的数据线以及一个必备的dc电源用于给设备供电。
软件方面所需要的主要就是驱动、固件以及刷机工具,在这已经打包放在这里了。
镜像文件
驱动
刷机工具
3.2 短接
安装完驱动程序后,将typec的连接板子和电脑,用镊子两个脚分别放在如图的触点上进行短接,确认短接完毕后插电,直到刷机软件如图所示的位置出现发现maskrom设备位置即可放开镊子。如果没有弹出maskrom的提示,那就拔点之后按照步骤多试几次。
第二步,按照上图软件界面,点击固件,选择已经对应的固件,然后直接点击升级,直到如图所示重启设备成功的字样出现。
到这里为止,固件就已经成功刷进去了。此时,断开typec的线,用hdmi线将板子连接到显示器上,会显示删除安卓的图片,然后弹出瑞芯微的logo,再然后就是熟悉的命令行界面了。
此时,接上网线,继续我们下面的步骤。
3.3 修改密码
在提示登录的界面,输入root,然后回车,初始密码是rpdzkj,即当前界面显示的文本。
使用root账号登录之后,当然就是先照例更新一下软件,输入如下命令,中间出现了选择y或者n以及其他命令,跟着提示输入就好:
sudo apt update
sudo apt upgrade
再然后修改密码,输入如下命令:
passwd
这里不会显示你所输入的内容,输入两次然后回车即可。
3.4 开启ssh
1、安装openssh
sudo apt-get install openssh-server
2、安装nano文本编辑器(因为vim实在是太难用)
sudo apt-get install nano
3、修改配置文件以允许root账户登录
cd /etc/ssh
nano sshd_config
找到如下内容:
# PermitRootLogin without passwd
将其修改为(去掉前面的#):
PermitRootLogin yes
保存配置(按照下面的提示来):
先ctrl+o再ctrl+x
重启openssh:
sudo systemctl restart sshd
3.5 安装docker
apt install docker.io
等待进度条跑完,就完全ok了
3.6 小结
接下来的就是很简单,把它放到路由器边上插上网线接上电,在路由器后台找到它的ip地址,通过ssh连接即可安装自己喜欢的docker应用了。
4 总结
综上所述,由于关于该类型的刷机教程较少,因此自己动手刷了一遍留篇文章以做记录。诚然,与之前刷树莓盘那位老哥入手的70块钱相比,现在的120元确实涨价了不少。但是相对于其丰富的接口以及强大的性能,还是无愧于性价比二字的,毕竟double性能double价格嘛对不对,而且现在荣品系的rk3399一方面量比较大,另一方面资料相对还比较丰富,可以刷linux,可以刷安卓,还可以刷树莓盘当做nas使用,可玩性还是值得期待的,笔者就在此抛砖引玉,希望诸位值友能够开发出更多更有趣的玩法把。最后附上一张与玩客云的体积对比图。
干美胜3799mfc中如何将一个double类型的值显示在edit空间中? -
仲晨解18120228942 ______ 方法一:用ClassWizard 给 edit控件关联 double类型变量 假设变量为 m_value m_value = 123.456; UpdateData(FALSE);//把控件关联的变量值“刷到”控件上显示 方法2: 定义CString 字符串类型变量 CString s; s.Format(_T("%lf"), 123.456);//CString的成员函数Format类似C语言里的printf SetDlgItemText(IDC_EDIT1, s);//调用CWnd类的SetDlgItemText方法,第一个参数为控件ID,指定要把字符串设置到 哪个控件
干美胜3799若已定义x和y为double类型,则表达式:x=1,y=x+5/2的值是什么 -
仲晨解18120228942 ______[答案] x=1y=1+5/2=1+2,=3注意5/2不能带小数,所以结果是2,再加1,结果是3
干美胜3799用高电位和低电位来表示Double类型取值一共有(2的64次方)种表示方法,请问怎么取值范围如此之大?求详细 -
仲晨解18120228942 ______ 用4位 表示a 12位表示b a*10^b 的最大值是 15*10^(4095) =1.5*10^(4096) 表示最大值 没有什么问题 其实精度是由位数决定的. double 类型 2的64次方种表示方法 没有规定 一一对应 转换为实数.计算机中 都是有限精度小数, 严格说 也就没有 “连续” 这个对应概念
干美胜3799double类型在定义时默认为多少 -
仲晨解18120228942 ______ 这个应该也说不定吧,看编译器的,有的编译器会自动初始化为0.0,但是有的编译器给你定义的double类型的变量分配地址后,地址上面有值那就直接赋给了它,如果你想知道你可以在你的开发环境里打印出来,看看就知道了. int main(int argc, char **argv) { double a; printf("a = %e", a); return 0; } 希望对你有所帮助!
干美胜3799怎么把double型的转换成Long型的 -
仲晨解18120228942 ______ Double(double value) long longValue() 将此 Double 值作为 long 类型返回(通过强制转换为 long 类型).
干美胜3799c语言中double型的有效位数是怎样计算出来的 -
仲晨解18120228942 ______ 1. long double,c 提供 long double 类型,目的是提供一种比 double 更加精确的类型.然而,c 标准仅仅规定 long double 至少要和 double 一样精确.对于大多数编译器,long double等于double. 2. c语言中,双精度浮点(double)型,占8 个字...
干美胜3799如何获取某个double类型数据的指定精度的值 Java SE -
仲晨解18120228942 ______ 例如:double d=123.123123; 我要得到两位精度的值:123.12 不要用截取字符串的方法!!! 尝试一下 BigDecimal类 这个类提供很有用的方法 你用的到的
干美胜3799急!C++中double 类型的数怎么和0比较大小? -
仲晨解18120228942 ______ #include using namespace std; int main() { double a = 10.01; cout }
干美胜3799C语言:若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是2.0 -
仲晨解18120228942 ______ 1.x=1,,1是int类型,赋值给double的X的时候自动提升为double类型, 所以x=1.0(注意1.0是double类型的). 2.3/2的结果是int的1,然后double的 x加上int的1,先会吧int的1提升为double的1.0,然后x+1.0=2.0(2.0为double类型的).
干美胜3799请问:如何函数实现将一个表示浮点数的字符串转换为double类型的值? -
仲晨解18120228942 ______ #include<stdio.h> void main() { char *s = "12312.23123"; double d; sscanf(s,"%lf", &d);//////从字符串s中读取double型变量d,类似于scanf printf("%lf\n", d); }