标签:
突然想到了计算机的补码,现在利用这个题目回顾一下相关知识点
unsigned char ch = -1;
int val = ch;
val的最终值是255;
换算成二进制一下,-1的源码:1000 0001,反码:1111 1110 ,负数在计算机中是以补码形式存储的,-1的补码:1111 1111
ch 变量是 无符号的,也就是整个补码的二进制位都是数值位,1111 1111 二进制位换算成十进制就是255,最终赋值给整数结果自然也是255
这道题目考察的就是计算机数值的存储方式,对于正数,反码和补码一样都是其本身,对于负数而言,有点区别
负数的反码:原码的基础上,符号位不变,数值为取反
负数的补码:反码的基础上+1
标签:
原文地址:http://www.cnblogs.com/knight-monkey/p/knight_201608031122.html