您当前所在位置:首页攻略深入理解计算机中的unsigned和signed关键字

深入理解计算机中的unsigned和signed关键字

更新:2024-09-16 09:57:32编辑:游戏资讯归类:攻略

任何数据在计算机中都必须被转化成二进制,因为计算机只认识二进制。而计算机还要区分数据是正数还是负数,因此二进制又分为符号位和数据位。

计算机内存储的整型必须是补码。无符号数和正数的原反补码相等,直接存入计算机中。负数需要将原码转化成补码再存储。类型决定了如何解释空间内部保存的二进制序列。浮点数默认是double类型,如果想要float需要在数后加上f,如 float f = 1.1f

在计算机中,数据要存储到空间里,必须先转成二进制补码。而在写入空间时,数据已经转化成补码。

存:字面数据必须先转成补码,再放入空间中。符号位只看数据本身是否携带+-号,和变量是否有符号无关。取:取数据一定要先看变量本身类型,然后才决定要不要看最高符号位。如果不需要,则直接将二进制转成十进制。如果需要,则需要转成原码,然后才能识别(还需要考虑最高符号位在哪里,考虑大小端)。

特定数据类型能表示多少个数据,取决于自己所有比特位排列组合的个数。

大小端存储方案,本质是数据和空间按照字节为单位的一种映射关系。考虑大小端问题是1字节以上的类型,如short、int、double。

负零的概念并不存在,只是碰巧相像。-128实际存入到计算机中是以 1 1000 0000 表示的(计组运算器)。但空间只有8位,发生截断,因此得到1000 0000。而[1111 1111,1000 0001]~[0000 0000,0111 1111],即[-127,-1]~[0,127]自然数都已经被使用。计算机不能浪费每一个空间(最小的成本尽可能解决大量的计算),自然1000 0000也需要有相应的意义。因此赋予数值为-128。

截断是空间不足以存放数据时,将高位截断。截断的是高位还是低位?因为赋值永远都是从低地址赋起(从低到高依次赋值),因此空间不足时高位直接丢弃。

建议在无符号类型的数值后带上u,默认的数值是有符号的,在数值后加u更加严格,可读性更好, unsigned int a = 10u;

以上就是电脑114游戏给大家带来的关于深入理解计算机中的unsigned和signed关键字全部内容,更多攻略请关注电脑114游戏。

电脑114游戏-好玩游戏攻略集合版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

吞噬我巨强 1.0 关系数据库大数据量分析和拆分策略