只需一步,快速开始
主题 883|帖子 883|积分 2649
【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/17963363 出自【进步*于辰的博客】
参考笔记一,P3.13、P5.1;笔记三,P43.1/3、P44.1。
注:我暂且没有整理关于二进制、原码、补码和反码等概念的理论,本文中的阐述都基于我对相应概念的理解,推荐两篇博文(转发): 关于对【8位二进制的整数表示范围、常见位运算符和进制间转换】的理解与简述; 原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个)。 这两篇文章都是对我的启发之作,一些概念(如:机器数)也出自于此,建议大家先去浏览这两篇博文,这样会更便于阅读本文。
正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
正数的补码是其本身的原码;负数的补码是其反码+1后的结果。
引入补码是为了解决计算机中数的表示和数的运算问题,使用补码,可以将符号位和数值域统一处理,即引用了模运算在数理上对符号位的自动处理,利用模的自动丢弃实现了符号位的自然处理,仅仅通过编码的改变就可以在不更改机器物理架构的基础上完成预期的要求。
负数绝对值原码与负数原码的不同唯有符号位,如:1 = 0000 0001、-1 = 1000 0001,故负数绝对值原码取反与负数反码相同。
关于8位有符号二进制的表示范围,其中细节比较复杂,暂不讨论,我暂且简述,详述可查阅第一篇启发博文。
char 类型对应ASCLL码,对字符进行-/+ 32运算即可实现大小写转换。
大家看一个例子就明白了,看这里 → Inet4Address类的第2.2项,这里就不再赘述。
您需要 登录 才可以下载或查看,没有账号?立即注册
使用道具 举报
本版积分规则 发表回复 回帖并转播
光之使者