ecnelises

ecnelises

V2EX 第 89617 号会员,加入于 2015-01-02 22:06:48 +08:00
今日活跃度排名 15090
根据 ecnelises 的设置,主题列表只有在你登录之后才可查看
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
ecnelises 最近回复了
3 分钟前
回复了 yngzij 创建的主题 生活 合租太难了
@ecnelises

Try again...

3 分钟前
回复了 yngzij 创建的主题 生活 合租太难了
曾经的合租女生攒下的垃圾,还是已经整理过的哦。其他厕所什么的太恶心也没有照片留下来。

https://i.imgur.com/a/bPmC9II.jpeg
19 天前
回复了 novadng 创建的主题 macOS 请教大家, macOS 的 application menu 有办法定制么?
换成中文...
44 天前
回复了 x97bgt 创建的主题 程序员 大小端存储的疑问
大小端的最小单位是字节而不是位,而且针对的是内存操作中的单个数据,比如 int 、long 、double 等。所以如果你的数据单位也只有一个字节,就不用操心字节序问题。而多个 int 、long 组成的数组,元素之间的顺序也和字节序无关。

怎么理解呢?假设你有这样一个数组,其中两个 32 位 int,值分别是 0x01234567 和 0x89ABCDEF,在小端序机器上,内存里存的字节是 0x67 0x45 0x23 0x01 0xEF 0xCD 0xAB 0x89 ;而大端序上则是 0x01 0x23 0x45 … 0xCD 0xEF

所以你可以看到,大端序更直观,而两者各有各的好处。如今小端序更流行更像是 x86 造成的习惯原因。https://stackoverflow.com/questions/5185551

你想问的是,数据真正存储到文件里用的是什么字节序。严格来说这个问题本身是不存在的,因为字节序描述的是内存中的顺序。但不妨不准确地理解为大端序,因为从硬盘读取到内存里的都是一段一段的字节流,然后你可以随意「理解」为任意类型来读。

但是我们还是没有理解,为什么会有字节序这种东西存在,如何「理解」内存难道不是程序的自由吗?为什么要机器来规定?不是的。字节本身是没有意义的。两组 4 个字节,当作 float 和当作 int 进行相加,结果的字节是完全不一样的。所以机器需要一种确定的机制来从内存读数据到寄存器,或者直接从两个内存地址读数据进行操作。所以字节序只对机器指令集能够原生支持的数据类型有意义。
前面用到了额外断言的答案比较好理解。解释一下楼上面这个答案吧:

^(0(11)*0)*(1|01(11)*0)(0(11)*0)*((1|01(11)*0)(0(11)*0)*(1|01(11)*0)(0(11)*0)*)*$

如果让 X=(0(11)*0), Y=(1|01(11)*0),那么整个其实是 X*YX*(YX*YX*)* (开头结尾的符号省略了,不影响理解),而这个的意思其实是出现奇数个 Y 间隔任意个 X.

为什么 X 可以随意出现呢?因为 X 一定代表了偶数多个 0 和 1,无论是我们想要的奇数个 1 还是偶数个 0,减去偶数个 0 和偶数个 1 都没关系。Y 也不难理解了,因为穷举了所有奇数个 1 出现的情况。奇数个 1 出现奇数次还是奇数,所以满足要求。
89 天前
回复了 ecnelises 创建的主题 V2EX V2EX 已经 800000 主题了
@Tink
那些被删掉的,ID 位置应该还留着的
118 天前
回复了 ecnelises 创建的主题 推广 混沌周刊 #8 | It just works
@learningman
哈哈哈,因为 ID 有点鬼畜,改天想个好点的域名
122 天前
回复了 mlxy123123 创建的主题 Redis Redis 可以独立存储数据吗?
真有人这样干
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1641 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 11ms · UTC 17:07 · PVG 01:07 · LAX 09:07 · JFK 12:07
♥ Do have faith in what you're doing.