V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  realradiolover  ›  全部回复第 1 页 / 共 2 页
回复总数  36
1  2  
41 天前
回复了 x97bgt 创建的主题 程序员 大小端存储的疑问
首先,从网卡、内存、磁盘的角度看,传输、保存的永远都是字节流。给字节流中的字节赋予意义,例如数据类型( 32 位整型、浮点数.....)、字符串、位图数据....是应用程序的责任。和数据类型配套衍生出来的是大小端规则。CPU 处理数据前,会一次性读入 16 位或者 32 位或者 64 位数据到高速缓存,再到 ALU 等。大端机 CPU 会认为低比特位存放数值高位,小段机正相反。为了适配 CPU 这种约定,保证 CPU“看到”逻辑上正确的数值,需要事先组织这个数值在内存里的排列。这是大小端机制的来源。

大小端在 bit 层次上就存在的。假设内存地址从左到右增加,0x3 在小端机器上保存为 11000000,在大端机上保存为 00000011,在以太网等电信网络设施中、USB 串口中,按照 0->0->0->0->0->0->1->1 的顺序发送。

所有网卡的驱动,如果主机是小端,会自动转换字节内部的 bit 序(网络传输顺序为大端序);但是 Byte 间的顺序(字节序)保持不变。毕竟网卡只能看到字节流,它不知道也不需要关心这些字节代表的是字符串,还是 uint32_t 。

字节序转换,是应用层的事情(例如常见的 ntohs,ntohl 调用)。字节内部的 bit 序已经由网卡处理好。

容易混淆的是,我们在分析类似问题的时候会用到 16 进制数字,经常把数学意义上的数字,和内存表示法意义上的数字书写混为一谈。数学意义上的数字的书写,永远是左边高位右边低位。内存表示法意义上的数字,一般是左边低地址右边高地址,所以大端小端,写出来是不一样的。

另一个容易混淆的是,我们一般书写 16 进制数字的最小单位是字节,而不是比特。这就意味这它无法表征字节内部的 bit 序。数字 0x1234,在大端机器上的内存表示为 0x12 0x34,在小端机器上的内存表示为 0x34 0x12 。而 0x34 这一个字节,在大端、小端、网络中的内存表示法是一致的:0x34 。如果用二进制内存表示法,区别就很明显了。


楼主的提问是应用程序对字节流的定义,和字节流本身的大小端机制并没有关系。
UNIX 时间戳是绝对的。其度量基准为:从伦敦时间 1970 年 1 月 1 日 0 时开始,到此刻的秒数。

在某一时刻,全球不同地区时区不同,因此钟表时间也不相同(“时差”的来源),但 UNIX 时间戳是一致的。e.g.: 此刻,是北京时间 23:08:00,伦敦时间 15:08:00,美国东部时间 11:08:00,但此刻三个地方的 UNIX 时间戳都是 1626188880 。

同样道理,你获得此刻的 UNIX 时间戳,在全球不同时区,翻译得到的时间也是不同的;几乎所有的操作系统都有“区域,语言”之类的配置项,就是为了根据你的设备所在的时区,来翻译出“合适”的时间。e.g.:手机的“时钟”APP 通过 ntp 授时服务获得此刻的 UNIX 时间戳 1626188880,然后检查手机系统配置的“区域”,如果此刻你在上海,那么时钟显示“23:08:00”;此刻,你在夏威夷的同学,他的手机时钟 APP 也得到了同样的 1626188880,但他的系统区域设置是夏威夷,那么时钟将显示太平洋时间“05:08:00”

由此可见,各国日常生活所使用的时间是不过是表象,是相对的。这是为了照顾人们的生活习惯,午夜一定是 0 点,正午一定是 12 点。因此全球需要一个绝对的基准,一般用 UTC 来度量,计算机科学则使用 unix timestamp.


PS:基于北京时间的时间戳,本身就是一个伪命题。时间戳只有一个全球的绝对的。早期照片文件 EXIF 信息就忽略了这一点,只存了文本而没有时区。造成时间转换的混乱
苹果 /国产怎么设计不重要,国外 /国内设计师和用户的审美也不重要。关键是要通过相互撕逼,宣泄内心的戾气,这就够了。
2020-07-28 11:01:12 +08:00
回复了 elsonwx 创建的主题 生活 [深圳]早上上班时看见路边一个大叔不舒服坐在地上
打击报复是一定会发生的。现在很多维族团伙的脑回路比较奇特:不工作偷东西没什么,但你要阻止我偷,我就宁可倾家荡产甚至进监狱也要弄死你。所以,维族的事情一律报警。
2020-07-22 14:14:27 +08:00
回复了 fancy2020 创建的主题 Figma 想找一款"设计界的 Github",不知道有没有这样的网站
@fancy2020 很正常呀。挂羊头卖狗肉是咱中国的常态,你说“学习”,正常人第一反应肯定是“白嫖”。
2020-05-13 13:49:11 +08:00
回复了 EEer 创建的主题 C++ 看 CTO 封的框架代码 ,忍不住,吐槽……
@nekoyaki 我们中国人有我们自己的思维习惯和江湖规矩,适应不了就不要在中国呆
2020-04-26 16:44:32 +08:00
回复了 acgt 创建的主题 宽带症候群 总结欧美已有卫星通信系统的覆盖范围
@dream7758522 能收到,而且连覆盖范围更小的 FM 电台都十分密集。
2020-04-26 16:42:37 +08:00
回复了 acgt 创建的主题 宽带症候群 总结欧美已有卫星通信系统的覆盖范围
@leafleave 铱星网络所有卫星已经更换了一次,iridium next 带宽更大,延迟更低。可惜从今往后再也看不到铱星闪光了。
@tulongtou 很类似。我看了下群晖的 RAID10 模式说明,必须 4 块硬盘起。看起来还是不支持非对称的 10
2020-03-23 18:23:43 +08:00
回复了 zhanlingjie 创建的主题 问与答 关于 MFC 中 ipv6 的问题
STL
2020-03-21 12:08:09 +08:00
回复了 realradiolover 创建的主题 互联网 面对中文互联网信息质量持续下降,我们该怎么办?
归纳了一下原因:
1,早期接入网络的群体,和现在有质的差别。导致了内容产出质量肉眼可见的下降。
2,商业利益驱动,自媒体行业的发展,中国式商业哲学的“大一统”文化,导致洗稿稀释有效信息,甚至人为的信息垄断,人为阻隔内容的传播。
3,逆向淘汰。欧美“人人为我,我为人人”的精神内核,离中国国情和文化太遥远。

现在的问题:
中文互联网内容劣化,我们可以选择不看。但是它还要一手遮天,强行入侵我们的生活,降低我们的生活质量,影响我们的思维。
- 莆田系医院霸占了百度搜索的医学类流量,间接导致了魏则西事件(虽然现在已经有所好转)
- 之前看过一个视频,加拿大旅游签转学签,只需报考语言学校即可,完全能转;但在中文互联网上,基本都是移民中介的软文:这种方式成功率连一半都不到。于是,现实中世界上其他国家的移民都在走语言学校申请学签,只有中国人不去。中文互联网,已经形成了自己的生态系统,很多都是经验之谈。当华人全部依赖这类被商业寡头完全操纵的信息渠道,后果是什么,可想而知。
- 赴美产子一个道理,利益链条已经把持了整个中文互联网,利用信息不对称,恐吓小白走他们的渠道。一个事实:直接和海关说明意图并不会导致拒绝入境,撒谎才会。

那么该怎么办:
收集优质信息源。维基百科、Quora、Medium、WikiHow.....
由我们程序员行动起来,逆转这个趋势。
2020-03-20 14:05:04 +08:00
回复了 Woodywuuu 创建的主题 生活 2020 年,续租的话租金会涨还是跌呢?
房东联盟了解一下,多数人都表态,宁可到破产边缘,宁可无限期空置,也不会降房租。
凝聚力这个东西在下层社会是不存在的。
2020-03-19 13:52:31 +08:00
回复了 dsfegfhjk 创建的主题 程序员 剑桥大学出版社正开放教科书了,有没有大佬去爬下来
@eastrd 不要站着说话不腰疼好吧,中国的资源将越来越匮乏,不这么做怎么赚钱?
1  2  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1354 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
♥ Do have faith in what you're doing.