为何后台返回的-1,在iOS端显示:(long)72057594037927935

72057594037927935 等于 0x 00FFFFFF FFFFFFFF 七个字节全FF
本来是个long类型的数字,强制转化成int类型,就只取后面4个字节,前面的丢弃了
也就是0xFFFFFFFF——>0b11111111 11111111 11111111 11111111
因为是int类型,而不是unsigned int,所以第一位二进制作为符号位,0是正数,1是负数,这里的最高位是1,所以是负数。
因为是负数,所以后面的数需要取反码,即全部取反,0—>1, 1—>0, 然后再加1
31个1取反就是31个0,再加1,就是1,符号位是1,代表负数,所以这个值就是-1

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容