一、整形数据类型

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

我们有公式 

例如:

C语言 数据编码方式的更多相关文章

  1. form表单提交数据编码方式和tomcat接受数据解码方式的思考

    http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html *********************************************** ...

  2. javascript多语言设定方式

    1.控件文字语言设定 1.1 设定两个结构变量,定义好每一个控件需要用到的值,称它字典对象 var languagecn = { 1089: "夹柄不到位", 1090: &quo ...

  3. C语言文件方式输入与输出(最简洁方便实用的一种方式)

    freopen("inputfile.txt", "r", stdin); freopen("outputfile.txt", " ...

  4. 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式

    js判断: (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elain ...

  5. 应用AXIS开始Web服务之旅(soap web services)——使用三种不同的语言访问创建的Web服务,分别是JAVA、VB、VC

    一. 介绍 本文并不是想介绍Web服务的原理.系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念.原理等知识.本文主要是针对那些已经了解Web服务概念,但是还没有亲身体会Web服务所带来令 ...

  6. WebService与RMI(远程调用方式实现系统间通信)

    前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...

  7. 1-3 - C#语言习惯 - 推荐使用查询语法而不是循环

    C#语言中并不缺少控制程序流程的结构,for.while.do-while和foreach等都可以做到这点. 历史上所有计算机语言设计者都不曾遗漏这些重要的循环控制结构. 不过我们还有一个更好的方式: ...

  8. Redis与KV存储(RocksDB)融合之编码方式

    Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Re ...

  9. Android中实现如下多语言选择Radiobutton效果

    手边的samsung手机设置多语言的方式一般是点击设置多语言的一栏后进入到多语言选择界面,选择完成之后当前的语言环境用小字方式直接显示在设置多语言栏的下方.另一种选择多语言的方式如上图所示,我也在系统 ...

  10. 【GoLang】转载:我为什么放弃Go语言,哈哈

    我为什么放弃Go语言 作者:庄晓立(Liigo) 日期:2014年3月 原创链接:http://blog.csdn.NET/liigo/article/details/23699459 转载请注明出处 ...

随机推荐

  1. JavaSE总结(2)

    控制语句idea.方法重载控制语句1.顺序结构从上到下从左到右依次执行2.判断结构    a.if(判断表达式){        语句体;    }    b.if(判断表达式){        语句 ...

  2. CloudFlare Workers部署Pixiv图片反代

    CloudFlare Workers部署Pixiv图片反代 众所周知,pixiv的图片伺服器网域为i.pximg.net,因为有盗连保护,只要Referer是空值或不是来自pixiv的网域就会返回40 ...

  3. 20200420关于mysql突然停止服务的记录

    期待评论ing... 前天开发商城项目的时候,没注意d盘满了,后来5.5的mysql就突然无法启动,而且提示2003错误,在cmd中启动也是没有任何报错信息. 然后就找5.5原因,在windows的, ...

  4. JS 时间的获取和比较

    JS获取时间 获取当前时间 var date = new Date(); 可指定某种格式来获取时间,或者将字符串转换成时间 var date = new Date("2019-09-24 T ...

  5. DataWork之 MaxComputer的使用

    注意: 由于MaxComputer里面没有主键 默认主键为 保单号+8位险种代码+责任起期 若无主键限制,就对所有的字段进行分组 所以每次join的时候,where条件需要加上 a.主键 =b.主键 ...

  6. (性能测试笔记)逻辑IO和物理IO的区别

    IO性能对于一个系统的影响是至关重要的. 一个系统经过多项优化以后,瓶颈往往落在数据库:而数据库经过多种优化以后,瓶颈最终会落到IO.而IO性能的发展,明显落后于CPU的发展.Memchached也好 ...

  7. Unity简单使用 Addressables远端打包流程

    跟着一步步操作即可 1.先打开一个unity项目 2.导入插件资源包地址,点击如图片所示 3.最后点击导入就行了也就是第三步 Install 4.这是在点击 Window 安装后Window/多了一个 ...

  8. Win上好用的App们

    recaps 习惯了mac的输入法切换键(CapsLock),在win下真是各种不适应.于是,找到了这个recaps.亲测好用(Win10 LTSC,键盘布局添加的英文.中文,中文用的第三方输入法). ...

  9. SQL Server创建dblink跨库查询

    dblink是跨库查询的主要手段,在Oracle创建DbLink中已经演示了Oracle中如何创建及使用DbLink,这篇博客看看SQL Server中如何使用. 一.通过图形化界面直接创建 选择当前 ...

  10. Java基础学习:5、递归

    1.递归:就是方法自己调用自己. public class Test01 { public void test(int n) { if (n > 2) { test(n -1); } Syste ...