数据转换的理解

不同类型的数据进行转换的时候,就是将低位复制给对象,

比如说long转int就是低32位给int,这样,如果高32位有数据,则该部分的数据丢失。

若int转long,则是int 32位给long的低32位,高位补0,如int是负数,则高32为的最高位1,其余补0;

long转换为int后,int里的数据是long的高32位还是低32位的?

所以说:int转unsigned int也就是直接把int的32位给unsigned int。

换而言之,也就是把 bit 给  对方。

至于输出什么结果,有系统更具类型判断。

实例:

int  -1 的二进制表示方法是11111111111111111111111111111111;因为是int类型,所以系统才会判断为-1;

unsigned int 4294967295的二进制表示方法也是11111111111111111111111111111111;因为是unsigned int类型,所以系统才会判断为4294967295;

结论:

说到底,数据类型在底层的表现就是 二进制 。比如int有32个bit,而long有64个bit。

java和c的类型转换的时候,在意的是数据类型的bit数。

可以将java的byte和c的uint8_t对应起来;(typedef unsigned char  uint8_t)。

虽然java的byte是有符号的,而uint8_t是没有符号的,但是没有关系,其二进制的表示方式都一样,需要注意的是  解析 这些数据的时候,知道有区别就好了,注意点,就没有问题了。

时间: 2024-08-02 23:24:38

数据转换的理解的相关文章

d3可视化实战02:理解d3数据驱动的真正含义

前文中已经提到,SVG从诞生之初起就可以非常方便地使用javascript脚本语言来进行其DOM对象的控制.当然,控制的方法有很多,有直接控制SVG对象的方法,例如使用原生js:有帮你封装一下图形接口再进行直接控制的js类库,如 Raphaël.但是正如我在第一篇文章中所说,d3作为一个中间型类库还能脱颖而出的重要原因,在于它突破了其他类库的那种直接控制表现层的机制,而采用了对于web图形处理领域较为新颖的数据驱动机制(2011),并获得了极大的成功. 数据驱动的历史 数据驱动编程并不是一个新鲜

BAT资深工程师由浅入深分析Tp5&Tp6底层源码 - 分享

BAT资深工程师由浅入深分析Tp5&Tp6底层源码 第1章 课程简介(一定要看,知道整体介绍,方能更好的学习后续课程) 本章主要让大家知道本套课程的主线, 导学内容,如何学习源码等,看完本章要让小伙伴觉得这个是必须要掌握的,并且对加薪有很大的帮助. 第2章 [TP5灵魂]自动加载Loader 深度分析(重点章节,请认真听,建议多次回听) 本章主要讲解为什么要学习自动加载,带领大家看看TP框架的执行流程是什么样子.学习自动加载的原理以及TP5内部自动加载的代码分析.TP 结合composer相关的

变量 和数据类型

js 是解释型语言逐行逐行输出,优点:跨平台,缺点:速度稍慢. js 是弱类型语言 首先弄清楚强类型语言是什么意思,强类型语言变量声明有很多种而JS 变量声明只有var一种.为变量赋值时会自动判断类型并进行转换. js 里创建 变量的语法 var a = 1;  //意思是开辟了一个空间来存取 1这个数据, 空间的名字是a.变量可以被修改  所以里面有个变字. 这里注意变量的作用域,变量分为全局变量和局部变量 全局变量 是什么地方都可以引用 在function(){ }里变量是局部变量,局部变量

Node.js面试题:侧重后端应用与对Node核心的理解

Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. node开发技能图解 node 事件循环机制 起源 node正风生火起,很多介绍却停留在入门阶段,无法投入生产 node相关的高质量面试题更是少之又少,很难全面考查应聘者的node能力 许多文章在讲第三方类库,可是这些库质量差距较大,一旦遇到问题怎么办 必需的,全面了解node核心才能成为一名合格的node开发人员 目标与原则 前后端兼顾,更侧重

LINQ之路 7:子查询、创建策略和数据转换

在前面的系列中,我们已经讨论了LINQ简单查询的大部分特性,了解了LINQ的支持计术和语法形式.至此,我们应该可以创建出大部分相对简单的LINQ查询.在本篇中,除了对前面的知识做个简单的总结,还会介绍几种创建更复杂查询的方式,让我们在面对更复杂的场景时也能轻松面对,包括:子查询.创建策略和数据转换. 子查询 在创建一个复杂的查询时,通常我们需要用到子查询.相信大家都记得SQL查询里的子查询,在创建LINQ查询时也是如此.在LINQ中,对于方法语法,一个子查询包含在另外一个查询的lambda表达式

关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释

O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据. 在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO. VO,值对象(Value Object),PO,持久对象(Persisent Object),它们是由一组属性和属性的get和set方法组成.从结构上看,它们并没有什么不同的地方.但从其意义和本质上来看是完全不同的. 1.VO是用new关键字创建,由

10分钟学会理解和解决MySQL乱码问题

本文将详细介绍MySQL乱码的成因和具体的解决方案 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为.为了更好的解释这个过程,博主制作了两张流程图,分别对应存入和取出两个阶段. 存入MySQL经历的编码转换过程 上图中有3次编码/解码的过程(红色箭头).三个红色箭头分别对应:客户端编码,MySQL Server解码,Client编码向表编码的转换.其中Terminal可以是一个B

MVVM架构的理解

最早的时候,只知道MVC(模型+视图+控制器). 把数据的管理与显示分开, 通过控制器实现管理与显示之间的互动, 方便开发与复用. 美好的事情总是很快发生, 在6月份接手的项目中,看到这样的代码, 把视图显示和数据处理的代码放在ViewController里面, 这连MVC 的标准都不是. 之前我经常这样用,把数据单独一层来处理, 然后在数据层里面实现数据的持久化(本地化), 这层就是通常锁说的 S .所用架构就是 MVC S MVC S 通过把数据存储抽离, 是对MVC做的简化. 不管用到MV

node.js面试题大全-侧重后端应用与对Node核心的理解

Node是搞后端的,不应该被被归为前端,更不应该用前端的观点去理解,去面试node开发人员.所以这份面试题大全,更侧重后端应用与对Node核心的理解. github地址: https://github.com/jimuyouyou/node-interview-questions 注: 这人本人历时一星期完成的小作品,github里面对一些关键代码还有js源文件.直接node filename.js就可查看效果. 第一个版本,写的匆忙,能力有限,欢迎拍砖补充!后面持续更新会及时发布到github