C语言 数据编码方式
一、整形数据类型
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语言 数据编码方式的更多相关文章
- form表单提交数据编码方式和tomcat接受数据解码方式的思考
http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html *********************************************** ...
- javascript多语言设定方式
1.控件文字语言设定 1.1 设定两个结构变量,定义好每一个控件需要用到的值,称它字典对象 var languagecn = { 1089: "夹柄不到位", 1090: &quo ...
- C语言文件方式输入与输出(最简洁方便实用的一种方式)
freopen("inputfile.txt", "r", stdin); freopen("outputfile.txt", " ...
- 史上最全的判断android,ios还是ipad访问,附上多种语言的实现方式
js判断: (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elain ...
- 应用AXIS开始Web服务之旅(soap web services)——使用三种不同的语言访问创建的Web服务,分别是JAVA、VB、VC
一. 介绍 本文并不是想介绍Web服务的原理.系统架构等,我们假设您已经了解了关于Web服务的一些基本的概念.原理等知识.本文主要是针对那些已经了解Web服务概念,但是还没有亲身体会Web服务所带来令 ...
- WebService与RMI(远程调用方式实现系统间通信)
前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架 ...
- 1-3 - C#语言习惯 - 推荐使用查询语法而不是循环
C#语言中并不缺少控制程序流程的结构,for.while.do-while和foreach等都可以做到这点. 历史上所有计算机语言设计者都不曾遗漏这些重要的循环控制结构. 不过我们还有一个更好的方式: ...
- Redis与KV存储(RocksDB)融合之编码方式
Redis与KV存储(RocksDB)融合之编码方式 简介 Redis 是目前 NoSQL 领域的当红炸子鸡,它象一把瑞士军刀,小巧.锋利.实用,特别适合解决一些使用传统关系数据库难以解决的问题.Re ...
- Android中实现如下多语言选择Radiobutton效果
手边的samsung手机设置多语言的方式一般是点击设置多语言的一栏后进入到多语言选择界面,选择完成之后当前的语言环境用小字方式直接显示在设置多语言栏的下方.另一种选择多语言的方式如上图所示,我也在系统 ...
- 【GoLang】转载:我为什么放弃Go语言,哈哈
我为什么放弃Go语言 作者:庄晓立(Liigo) 日期:2014年3月 原创链接:http://blog.csdn.NET/liigo/article/details/23699459 转载请注明出处 ...
随机推荐
- 在docker中,运行Jcmd命令,报错
起因: 想调整JVM的设置,观察一下当前jvm进程的资源情况. 输入:docker exec -it xxxxx /bin/sh 输入: jcmd 1 help ,报错 com.sun.tools.a ...
- Appium常见属性和命令
from appium import webdriverimport time, tracebackdesired_caps = {}desired_caps['platformName'] = 'A ...
- PXE自动安装linux系统
一.PXE自动安装Linux系统的大致流程 1.环境准备 2.安装所需的必要软件包并开启对应的服务 3.准备安装源 4.准备自动应答文件,并放到可以被访问到的地方 5.配置DHCP服务并启动 6.将必 ...
- .NetCore2.0引用DLL报System.InvalidOperationException: Can not find compilation library location for package 'XXX'
.NET CORE 2.0 MVC项目引用类库出现:System.InvalidOperationException: Can not find compilation library locatio ...
- go项目,出现too many open files
刚开始碰到这种异常,以为是代码写的有问题,准备抽时间去改,等有时间正式此问题的时候,发现这种问题一般只会在linux系统上出现,原因如下:linux系统限制了文件打开的最大文件句柄数,系统默认一般是1 ...
- 实验四:开源控制器实践——OpenDaylight
实验要求: (一)基本要求: 1.利用Mininet平台搭建下图所示网络拓扑,并连接OpenDaylight控制器: 2.通过Postman工具调用OpenDaylight提供的API下发流表,实现拓 ...
- CodeGym自学笔记02——打印命令
1.方法的主体由命令组成.我们甚至可以说,方法就是一组被赋予名称(方法名称)的命令. 2.如果你使用几次 System.out.println() 命令,就会发现每次传递给该命令的文本都会显示在单独的 ...
- Jest - Configuring Jest
Jest is a delightful JavaScript Testing Framework with a focus on simplicity. It works with projects ...
- Java 复习篇2---jdk
jdk 文件: bin 该路径下存放了各种工具命令, 其中重要的有javac 和Java conf: 改路径下存放了相关配置文件 include: 该路径下存放了一些平台特定的头文件 jmods; 该 ...
- 使用Telnet伪造邮件发送
注意:手抖就会败北,敲错就会白给,输入错误只能rset重新输入命令. 1.打开Telnet服务 搜索"程序和功能"->启用或关闭Windows功能->点选Telnet客 ...