一、整形数据类型

1.无符号数的编码

无符号数指的是整个机器字长的全部位数均表示数值位。

我们用函数      来进行运算。(B2U是Binary to Unsigned的缩写,长度为w),x代表为0或1

如 

2.补码编码

想要对有符号数进行编码,目前主要采用补码编码(原码和反码编码在0的表示上做不到统一)

我们用函数来进行运算。(B2T是Binary to two's-complement的缩写)

从这里很容易知道w位补码能表示值的范围,明显不同于无符号数编码的是在于最高有效位被设置为符号位,值为1时表示为负数,0则为非负数

欲得到w位补码最小值,只需要[10000...]固定首位为1,剩余位为0,也就是其整数值为

最大值则为[01111...],其整数值为

如果是4位补码,那么依据上述公式,显然最小值为-8,而最大值为7,你会注意到一件事情,补码的范围是不对称的,这是因为我们将首位1设置为负数,首位0为非负数,因为数字0是非负数,也就意味着能表示的正数比负数少了一个(0占去了一个位置)。

第二件你会注意到的事情是,无符号数在相同位数下能表示的最大值恰好是符号数表示的最大数的两倍多1。比如4位无符号数编码最大值为15=2*7+1。

二、有符号数和无符号数间的转换

1.T2U

我们有公式        

例如:

2.U2T

我们有公式 

例如:

最新文章

  1. 用javascript写星际飞机大战游戏
  2. UIWebView中加载HTML的Table,td设置百分比宽度并且宽度不被里面的内容撑开
  3. 解决Oracle在scott用户下创建视图(VIEW)权限不足的方法
  4. DevExpress.XtraGrid winform试用分享
  5. Java——函数
  6. mac 10.8 编译提示找不到GCC
  7. Linux TCP队列相关参数的总结 转
  8. ANDROID_MARS学习笔记_S03_009_GOOGLEMAP3
  9. Spring Data MongoDB example with Spring MVC 3.2
  10. Android系统提供了哪些东西,供我们可以开发出优秀的应用程序
  11. 基于jQuery的前端如何做到无伤迁移
  12. 对手机SD卡的一些操作
  13. Android GridView增加HeaderView和FooterView的实现
  14. ESB 设计
  15. Myeclipse 创建 Web Maven项目
  16. RabbitMQ是如何运转的?
  17. Python全栈开发之---mysql数据库
  18. tensorflow---alexnet training (tflearn)
  19. seo一些相关内容
  20. js代码实现购物车效果

热门文章

  1. SQL Server查看端口号及修改端口号
  2. 在Debian11上安装Openresty服务(Nginx+Lua)
  3. python 操作配置文件(configparser模块)
  4. 靶场练习3: Funbox2
  5. 反射的学习笔记--sql语句生成
  6. 第六章:用Python实现自动发送邮件和发送钉钉消息
  7. C语言源文件如何编译为exe
  8. Python列表等长度分割
  9. js match方法
  10. map转换 bean和list