一个数据假设它在计算机里按照二进制规则存储有位(这里我们不考虑是有符号的还是没有符号的数据,这个问题由下面的陈述来说明),那么它的位表示为:这里我们把x的位表示看成向量。我们书写的x的位表示并没有考虑计算机使用的端法(大端法、小端法、双端法),其实这些你都不用考虑,因为不管你怎么书写自己的表达式计算机都会用相应的储存方式来存储,所以根本不会影响我们。
其实在计算机里一个值的数据类型转换的实质是:它们在计算机里的二进制编码不变,但是这个二进制编码不再使用原来的计算方式而是使用的是新的数据类型的计算方式。在计算机网络里我们通常将这样的计算方式叫协议。
介绍几个函数代表的意义:它是由(Binary to Unsigned)缩写的,代表的意思是二进制转无符号数;
它的计算原理:。
它是由Binary to two's complement 缩写的,意思是二进制转补码;
它的计算原理:
从上面的各自计算原理中可以看出的最小值为0,最大值,
的最小值,最大值
那么我们可以得出结论:。
我们上面假设的数据x为有符号的数据,那么现在我们可以把x转换为无符号数据,计算原理如下:
首先x的二进制补码给表示出来:
令未知数C,,
x的无符号求值为:
带入C得出:
为最终求得的有符号转换为无符号的结果
记作这里的就是一个函数表示的是补码转无符号