V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  amiwrong123  ›  全部回复第 1 页 / 共 25 页
回复总数  492
1  2  3  4  5  6  7  8  9  10 ... 25  
@koebehshian #12
哎,我也不知道为啥他的源文件编码格式都是 gb2312😂
我只是负责集成包装成接口给上层使用,而且之前他好像还说过,不要改他的源文件的编码格式,不然可能会出问题😂
@mangohaoming #9
是吗,我就是怕 withBom 的 有问题,所以才来发帖😂
@wudicgi #8
我也这么觉得。老哥你看看我 4 楼的问题呢,那篇文章把我弄懵了,我理解:
如果已经设置了 /source-charset ,那么不会执行那三个步骤,直接使用 设置的 /source-charset 。对吗😂
@yolee599 #7
那要不要 withBom 呢?
因为 vs 编译,最好是 withBom 的
@koebehshian #6
他的代码 是 那种处理中文文本的一种程序(类似,NLU )。总之,肯定会有 中文字符串常量。这没法阿
@mangohaoming #3
老哥你看看我 4 楼的问题呗

这篇文章也是说,最好 utf-8-withBom 。但我的 c++代码也需要在 linux 上编译,就得跨平台。

而且这篇文章说,最好使用 wchar_t 。我有点不理解。关键这个类型大家感觉也不常用啊,到时候和别人代码一对接,好多地方要改,还可能出错。。
https://www.cnblogs.com/jiangxueqiao/p/7464408.html#!comments

这篇文章里提到:
vs 编译器判断源文件编码类型的步骤为:
1. 若文件开始处有 BOM(EF BB BF),则判定为 UTF-8 编码;
2. 若没有 BOM ,则试图从文件的前 8 个字节来判断文件是否像 UTF-16 编码,如果像,则就判断为 UTF-16 编码。
3. 如果既没 BOM ,也不是 UTF-16 编码,则使用系统当前的代码页(简体中文操作系统为 CP936 )。

我理解是这样的:
如果没有设置 /source-charset ,那么会执行这三步,根据这三步来得到最终的 /source-charset 。
如果已经设置了 /source-charset ,那么不会执行这三个步骤,直接使用 设置的 /source-charset 。

有没有经常用 vs 的老哥,是不是这样呀😂
6 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb
又或者根本不该加 sum += (sum>>16);
6 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb
大佬,再问一下这个算法:
sum = (sum>>16) + (sum&0xffff);
sum += (sum>>16);

1. 这两句,我理解后面这句话 sum += (sum>>16);是有必要的,因为前面这句 sum = (sum>>16) + (sum&0xffff);可能又发生了溢出,所以针对这种可能出现的情况,我们需要再做一次 sum += (sum>>16);?是这样理解的吗

2. 但为什么第二句不是 sum = (sum>>16) + (sum&0xffff)呢?
9 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb #5
> x1+x2+...+xn+c=0

本贴中第一个图中,发送方的数据是 1000 0100 ,最后算出来的校验和为 0011 ,
1000 + 0100 + 0011 = 1111. 为啥我这算出来是 全 1 呢😂,是我哪里理解错了
😂
9 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb #4
![]( https://s3.bmp.ovh/imgs/2021/11/a1701aa01a429c66.jpg)
我好像通过这个懂了,为什么 要“溢出高位叠加到低位”。但我好像还是没通过你的这句话,来 get 到为什么“溢出高位叠加到低位”。
哎,我太笨了
总之,不管是再加 1 ,还是“溢出高位叠加到低位”,都是为了 保证 反码 a+反码 b = 反码 c (因为 a+b=c )
9 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb #4
普通的数 的加法里,溢出后,溢出的那一位 刚好就代表 2^w ,所以普通的数 加起来 不用特殊操作。

反码 的加法里,溢出后,溢出的那一位也是就代表 2^w 的,但反码的范围是 [0000-0111 ,1000-1110] (前者 正数,后者负数,-0 么有算在里面),所以就 应该再把溢出那一位 1 加到后面(但这里我 无法正确表述这个道理,希望大佬解释下)

总之,两个反码相加,可能会得到 0001 xyza ,而“溢出高位叠加到低位”就是把这个 0001 ,给加进来。
10 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@amiwrong123 #7
好像理解了。。

0b10000 - 6 = 2 那就是对 8 取模
0b1111 - 6 = 1 那就是对 7 取模

剩下的我接着理解
😂
10 天前
回复了 amiwrong123 创建的主题 程序员 TCP 检验和原理不太懂?求大佬指点
@qbqbqbqb #4
正数的话,原码和反码相同。
负数的话,反码是 把负数绝对值的原码,按位取反,再把符号位置为 1 。这样,负数的反码 和 负数绝对值的反码(负数绝对值就是正数,正数的话,原码和反码相同)恰好各个位都是 相反的。

从上可以得知(假设为 4 位 bit 的数)(|负数|是这个负数的绝对值):
负数的反码 + |负数|的反码 = 1111

所以就得出了 ~x = [11..11]2-x = “x 取反”
因为 负数的反码 = 1111 - |负数|的反码

然后你说的“反码加法”就是指两个反码相加是吧。
但我还是没懂“反码加法实际上就是关于 2^w-1 取模的加法”这句话。

比如
负数 a 的反码 = 1111 - |负数 a|的反码
负数 b 的反码 = 1111 - |负数 b|的反码

那么
负数 a 的反码 + 负数 b 的反码 = 1111 + 1111 - |负数 a|的反码 - |负数 b|的反码

但是怎么理解成“关于 2^w-1 取模”啊

有点笨,求指点迷津啦
@xarthur #8
我有点不太会弄这个 iptables ,本着不懂就问的原则,我先按照 这文章里的 https://www.cnblogs.com/EasonJim/p/6851007.html 先新建一个 rules.v4 ,做完步骤。然后在 这文件添加一行啥呢?(我是用 Windows 的 Ubuntu 虚拟机)

类似于
iptables -A INPUT -p tcp -m tcp --dport 4444 -j DROP 吗
@xarthur
谢谢老哥,等会 我在我的 window 上也试一下~
@xarthur #8
看到了 12.12.12.12 就是 4 个 0C , 4 个 0C 后面的,就是我想要的 东西了。数了一下,payload 一共有 64 个字节。

即 IP 数据报的首部和前 8 字节 = 64 字节。哇,那 这个 IP 数据报的首部有 56 字节啊,好长啊
@xarthur #5
老哥,你的图床我死活看不到。我好想看,却看不到~( PS:可以用这个图床 https://imgurl.org/)

另外,你是咋手工构造的呀😂有点神奇哦
还有这种好事😄
@yuanyemoon #26
ap 模式是什么意思?我百度了下,就是说,我现在再找 另外一台 ap 模式的路由器,让它和我的移动给的路由器的 LAN 口相连,这个新路由器的 wifi 那也可以上网。
相当于桥接模式,没有产生新的子网呗
1  2  3  4  5  6  7  8  9  10 ... 25  
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2378 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 14:40 · PVG 22:40 · LAX 06:40 · JFK 09:40
♥ Do have faith in what you're doing.