数据的二进制形式
研究数据的二进制形式可深入理解计算机如何存储数据,以此可以优化、改进甚至创造新的存储方法。
整数
有符号数和无符号数看起来是两种数,其实计算机根本不知道它们的区别。CPU只知道二进制位,你说当有符号数那就是有符号数,你说是无符号数就是无符号数。有人会问,那为什么用int或者unsigned计算从来没出错过?CPU应该了解的呀! 事实是,CPU确实不了解,它只是简单的按照类似1+1=0(进位)这种计算方式计算而已。为了给程序员更多计算结果信息,寄存器记录了数据计算之后的状态位,例如溢出位、符号位、Zero位等等,服务于je/jne等汇编指令做跳转判断。
- -1有符号整数是UINT_MAX.
补码
整数一般按照补码存储,它有效地解决了符号位和数值大小都存在的“变量空间压缩”功能。即,将符号位至于整数二进制最高位,其余保存数值大小的相对信息。
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!