貌似补码,原码,反码和网络字节序都是基本知识。但我这几天稍微研究了一下真正的明白。
1 : 补码,原码,反码。
具体的含义就是百度就可以了。
这些都只是内存存取形式,是一种抽象的东西。我们人能识别的通常为十进制,但计算机只能识别0,1。 所以我们用到代码有正负的数时候必须转换为计算机能表示的数字。
所以产生原码,反码,补码。
然后根据我们实际和效率考虑考虑一般计算机都是用补码在内存中保存我们用到数字。
2:网络直接序
我们数字在计算机编码是用补码表示,字节顺序又有2种情况。一种是大端,一种是小端。
大端: 低地址存放高字节
小端:低地址存放低低字节
网络字节顺序采用 big endian
低地址:
比喻 char str[] = "hello world";
&str[0] < &str[1]
低地址 ----> 高地址
hello world
高地址---->低地址
只要把几个概念搞清楚就OK了。
上面内容只是稍微写了,文笔太差,也懒用例子说明。