【编程语言】深度解构编程语言核心:从二进制底层到多语言数据类型全景图
在编程的世界里无论你使用的是哪种高级语言底层处理的永远是数字和字节。理解数据在内存中的存储方式以及不同语言之间的差异。一、 计算机是如何存储数字的计算机本质上是一个巨大的“开关”集合每个开关只有 0 和 1 两种状态。1. 位与字节Bit位计算机最小的存储单位只能表示 0 或 1。Byte字节计算机存储的基本计量单位。1 Byte 8 Bits。2. 负数的艺术原码、反码与补码计算机为了简化硬件电路让减法也能通过加法器完成引入了补码。原码最高位为符号位0正1负其余位表示数值。反码正数同原码负数符号位不变数值位按位取反。补码正数同原码负数在反码的基础上 1。案例演示以 8 位字符为例假设我们要表示一个负数编码类型二进制表示说明原码10101011最高位 1 表示负数反码11010100符号位不变其余取反补码11010101反码 1计算机真实存储格式二、 Java严谨的跨平台标准Java 的设计初衷是“一次编写到处运行”因此它的基本数据类型大小在所有平台上都是固定的。1. 整数的四种表达形式在代码中你可以通过前缀快速定义不同进制的整数二进制以0b或0B开头。八进制以0开头。十六进制以0x或0X开头。十进制默认形式。2. 八大基本数据类型类型分类类型字节取值范围整型byte1−27-2^7−27~27−12^7-127−1(-128 ~ 127)short2−215-2^{15}−215~215−12^{15}-1215−1int4−231-2^{31}−231~231−12^{31}-1231−1(约±21亿默认)long8−263-2^{63}−263~263−12^{63}-1263−1浮点型float4单精度double8双精度默认字符型char2Unicode 字符布尔型boolean-只有true/false三、 C / C追求极致效率与底层控制C/C 与 Java 最大的不同在于其类型大小可能随编译器和操作系统位数的改变而改变。1. C 语言硬件的延伸在 C 语言中int的大小通常是机器的字长16位系统下是2字节32/64位系统下通常是4字节。符号修饰符unsigned无符号仅正数范围翻倍和signed有符号。精度差异long double在 C 中可以达到 16 字节提供极高的浮点精度。2. C更丰富的扩展C 继承了 C 的特性并引入了wchar_t宽字符来处理多语言字符集。类型常用字节数备注char1存储 ASCIIint4随系统变化long long8C11 后标准化的 64 位整数long double8-16高精度浮点四、 动态语言Python 3 与 JavaScript对于 Python 和 JS 开发者来说内存管理和类型声明被隐藏在了引擎底层。1. Python 3万物皆对象Python 的变量不需要声明类型。变量只是一个标签指向内存中的对象。核心类型Number (int, float, bool, complex), String, List, Tuple, Set, Dictionary。深度特性Python 的int是无限精度的只要内存够它可以表示任意大的数字。2. JavaScript动态与弱类型JS 使用var,let, 或const声明变量类型在运行时确定。Number 类型JS 不区分整数和浮点数所有数字统一使用 64 位浮点数存储。特殊对象数组Array和对象Object在 JS 中极其灵活。五、 主流语言数据类型大比较1. 静态 vs 动态静态语言 (Java, C, C)编译时检查类型。优点是执行效率极高适合大型工程和底层系统。动态语言 (JS, Python)运行时检查类型。优点是开发效率快、灵活性高但运行开销相对较大。2. 内存与平台依赖性特性C / CJavaPython / JS平台影响受编译器/系统位数影响完全不受影响屏蔽底层细节内存消耗极小精准控制较大对象头开销最大一切皆对象int 大小2 或 4 字节4 字节动态调整 (Python)char 大小1 字节2 字节 (Unicode)统一为 String注意Java 的char是 2 字节而 C 的char是 1 字节。这是因为 Java 天生支持国际化而 C 语言诞生之初主要面向 ASCII 字符集。https://blog.csdn.net/dazhongyue/article/details/77835117?spm1001.2014.3001.5502
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2581168.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!