作者neil987 (R5大小姐-EX人品崩坏)
看板GirlsFront
标题Re: [情报] 9/10拆包搬运+登入图
时间Sun Sep 13 00:59:39 2020
: https://i.imgur.com/ZXjoMcL.png 有兴趣的人就解这段程式码ㄅ
我这不就来了吗(′・ω・)
稍微做一点解释 如果有错误欢迎指正
#define true false
preprocessor macro
#define 的行为是在编译器之前建立macro 替换掉要所有档案里要替换的文字
以#define true false来说
就是把所有程式码里面的true替换成false
Thread.sleep(24*60*60*1000)
程式休眠24小时
[$[$RANDOM%6]==0]&&rm -rf
Linux指令 这指令是俄罗斯轮盘
$RANDOM会回传 0~RAND_MAX的数字
如果这个数字除以6後余数等於0的话 就会触发後面的 rm -rf指令
rm -rf 就是 删除root资料夹下的所有档案
基本上就是整台电脑GG的意思 所以是一个俄罗斯轮盘的IT梗
alias cd='rm -rf'
alias为linux设定指令别名
cd为linux用来切换资料夹的指令,rm -rf上面有提过
所以上面的指令等於 把cd设定为 rm -rf 的别名
设定後 使用者如果想用cd切换资料夹 就会把root资料夹删光
:(){ :|:& };:
跟linux内的bash有关,俗称fork bomb
简化(?)过後为:
: () {
: | : &
}; :
前面的 :() 意思是定义一个名字为 ":" 的function,此function没有参数
:|: 的意思是执行":"function的regression1并将输出结果pipe到另一个":"的process
也就是执行一次会生出两个":" function
然後"&"为背景执行
";"为 ":" function的定义终止符号
最後的":"就是在函数定义结束後 执行一次 ":" function
执行後会以2^N的速度新增process,会导致占用的CPU与RAM越来越多
最後会瘫痪整个系统,基本上只能重开机处理
typeof NaN
Javascript 的 NaN型态
全名是Not a Number
因为计算机科学的定义,所以在Javascript用typeof去查询NaN的型态的话
会回传 number 型态 但是它是Not-a-Number 有点矛盾
9+"1"==92-"1"
Javascript里的运算子与比较子有明确规定不同型态的值进行运算时的规则
左式 9 + "1" 为 number + string 规范number须转为string
而 string + string = string
因此左式 9 + "1" = "9" + "1" = "91"
右式 92 - "1" 为 number - string 因string不能相减,所以规范string须转为number
而 number - number = number
因此右式 92 - "1" = 92 - 1 = 91
又 "==" 为 一般相等比较子,根据规范:
当string(A)与number(B)一般相等比较时,需做以下转换
ToNumber(A) === B
所以原式: "91" == 91 => ToNumber("91") === 91 => 91 === 91 => true
484很神奇呢(′・ω・)a
HellWorld
通常学习程式第一件事情就是学习如何印出hello world
至於HellWorld嘛......(′・ω・)
0.1+0.2==0.3
这又是Javascript的问题
javascript对於所有number的计算都是采取64bit float型态
且使用的浮点数标准为IEEE 754
0.1转换为二进制的IEEE 754後为 0.0001 1001 1001 1001…
是无限循环的 然而IEEE 754 只能纪录52个尾数
因此存在误差
0.2同理,再转换成IEEE 754後为 0.001 1001 1001 1001…
因此此两数本来就有误差 相加之後 误差就更大了
所以在javascript里面 0.1+0.2==0.3 => false
long long ago;
long long 为int64资料型态
取值范围为-9,223,372,036,854,775,808~9,223,372,036,854,775,807
因此在懂程式的人眼里 这段程式的意思是 宣告一个ago变数 资料型态为 long long
而不懂程式的人眼中 这段话就有很久以前的意思
----
经过以上的简单解释
大家484更了解程式的奥妙了呢(′・ω・)
要不要一起踏入码农的世界呢? ~(′・ω・)~
--
指挥官002
https://i.imgur.com/cKp2zQR.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 150.116.18.143 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GirlsFront/M.1599929982.A.806.html
1F:推 EEK: 好强 09/13 01:02
※ 编辑: neil987 (150.116.18.143 台湾), 09/13/2020 01:03:01
※ 编辑: neil987 (150.116.18.143 台湾), 09/13/2020 01:05:48
2F:→ AlisaRein: 推,其实我看不懂 09/13 01:05
3F:→ steelgate: 总之 全部都是错误示范 好码农不要学XD 09/13 01:08
4F:推 AlisaRein: 恩恩恩,原来如此 跟我想的一模一样(棒读) 09/13 01:08
5F:推 yinyang102: 虽然看不懂但是先推就对了 09/13 02:19
6F:推 d630200x: 自始至终我还是觉得JS很智障 09/13 03:51
7F:推 whisperXD: 推 除了bash那边没联想到 其他都知道ww 09/13 04:38
8F:→ whisperXD: *fork bomb 09/13 04:40
9F:推 chikasa: 要当一个码农很简单,会上stackoverflow就好 (X 09/13 07:28
10F:推 JUSTMYSUN: 赶快推 不然别人会以为我们看不懂 09/13 07:39
11F:推 MultiCam: 感谢解释fork bomb 09/13 10:49
12F:推 Jimmy030489: 实验室的妮尔(O 09/13 13:30
13F:推 bautz: 跟剧情的关连性不知道在哪里 09/13 19:35
14F:推 allanwalker: 我看不懂 但是推爆? 09/13 22:26
15F:推 steelgate: 搞不好云母的码农都农这种码抗议没有扩编(X 09/13 23:14
16F:推 item948: 所以这段跑出来是什麽?(程式文盲) 09/14 12:58
17F:推 ptgeorge2: 跟我想的差不多 09/14 17:11
18F:→ neil987: 这几段不是同一种语言 所以没有所谓跑出来是什麽 09/14 17:28
19F:推 Madcorn: 师爷 你给翻译翻译 什麽叫做Hell world 09/18 14:03