Maison  >  Article  >  développement back-end  >  计算机数字的计算都是二进制的,但是不同的编码是否是否会生成不同的二进制

计算机数字的计算都是二进制的,但是不同的编码是否是否会生成不同的二进制

WBOY
WBOYoriginal
2016-08-04 09:20:101256parcourir

例如 计算 2*3 计算机会先转成二进制进行计算,如果是不同的编码形式,是不是对应着不同的二进制

回复内容:

例如 计算 2*3 计算机会先转成二进制进行计算,如果是不同的编码形式,是不是对应着不同的二进制

是的,不同的编码会有不同的记录数据的方法,当然他们也会有相似相同的地方。
编码主要针对的是字符串,在数字存储是也有大小端序之分,都是不同的二进制数据记录规则的体现。

题主有几个基础概念先得弄清楚。

首先你说的应该是在源代码中的“2*3”,源代码文件的字符编码可以是不同的,它们的二进制表示也不同。然后你提到了“计算”,那肯定得先经过编译生成目标代码才能被执行(无论是解释执行还是cpu指令执行),假如你是生成的机器代码,那么在同一台机器上,数字存储的格式是一样的。假如是生成的某个虚拟机的字节码,那么数字格式和字节码的编码一样。

你先得搞清楚数据的类型。你计算2*3是两个整数计算,也就是10*11(二进制),并没有编码之分,你放到不同的架构上只是表示整数的长度不同而已。

你说的编码是针对字符的,比如2和3的ASCII就分别是0110010和0110011,这并不是用来计算的。

是的,随便用什么编码,随便怎么存储。
但是必须保证计算结果相同。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn