【剑指offer知识点】Java中无符号整型、如何与int/long类型互相转化

简介: 【剑指offer知识点】Java中无符号整型、如何与int/long类型互相转化

[1] 结论


  Java中没有无符号数据类型(它就是这样设计的,我没查到为什么),byteshortintlong都是有符号数据类型。当我们逻辑上说一个数是无符号类型的话,往往代表我们说它的二进制符号位应该是要纳入计算的,而Java中把这个不该纳入计算的位置当成符号位,所以和我们现象中的数据不一致。特别注意:在Java中,负数以补码存储。

  解决办法就是提升类型,把符号位包裹在可计算位中:

int  toUnsignedInt(byte x)
long  toUnsignedLong(byte x)

[2] 举例说明无符号和有符号的区别


baf94ca6666549e1976cb85584942fdb.png

  如上图,8位负数-42的原码、反码、补码如图所示。假设我们在逻辑上认为Java中的byte类型的-42是一个无符号类型数字,那么它的实际数字应该是214,即它的补码的机器码大小。

  在Java中,由于负数以补码方式存储,所以负数提升为无符号数字时,是把它的补码的符号位纳入计算,而不是原码或者反码。

[3] 口算出无符号数


  如果想直接口算,可以使用:

负数时: 无符号数 = 2^n + 负数
正数时: 无符号数 = 正数

  8位负数-42的无符号数 = 2^8 + (-42) = 214。

相关文章
|
3月前
|
人工智能 Java 大数据
Java程序员真的还有未来吗?如何备战2024春招?并狂拿大厂offer?
Java程序员还有未来吗? 嘿,小伙伴们,你们有没有想过Java程序员还有没有未来? 哈哈,别担心,我这就来给你们答疑解惑! 首先,让我们来看看Java的发展历程。自从Java诞生以来,它就一直是编程界的一颗璀璨明星。从Web应用到企业级应用,再到移动应用,Java无处不在。那么,现在呢?现在,随着人工智能、大数据和云计算的兴起,Java依然发挥着重要的作用。这些领域都需要大量的Java程序员来支持它们的发展。 那么,有人会说:“哎呀,现在出现了那么多新的编程语言和框架,Java程序员会不会被淘汰啊?”哈哈,别担心,Java程序员们!这些新语言和框架的出现并不会让Java消失。相反,它们
80 0
|
3月前
|
NoSQL Dubbo Java
唯品会三年,我只做了5件事,如今跳槽天猫拿下offer(Java岗)
xxx,都是好牌子,天天有三折” 是的,我在这家洗脑广告词公司里工作了整整三年时间,虽然是大家耳熟能详的互联网电商公司,但它的发展同其他新起互联网公司来说局限了很多,同时也早早遇到了瓶颈。好在三年前,我就开始规划了我自己的人生,所以在唯品会的三年时间里,我并未懈怠。
|
4月前
|
缓存
【面试知识点】关于Integer和Int的比较
【面试知识点】关于Integer和Int的比较
|
4月前
|
设计模式 算法 Java
京东Java高开岗三面算法+数据库+设计模式,复习1个月成功拿offer
京东高级java现场三面,包含:算法、数据库、设计模式、java高级等,尾部有最全BAT高级java面试题目和答案福利,想要的就快来领走吧~(领取方式见文末)
|
3月前
|
消息中间件 NoSQL Java
读完这些“Java技术栈”,拿下阿里Offer没问题
今天,要分享的这些是非常干货的面试知识,在疫情闭关期间,这些“Java技术栈”读完,斩获offer到手软。
|
3月前
|
SQL Java 关系型数据库
疫情之后,幸获内推,4面京东拿下offer(Java后台研发岗)
在2019年时,就早早生了跳槽的念头,心想着拿完年终奖就要开始“跑路”,但万万没想到过完春节之后竟被疫情耽搁了这么久,导致很多互联网公司的招聘都往后一拖再拖。幸运的是,刚复工之后,就收到了朋友的消息,有京东内推的机会,问我要不要试一试,虽然说之前的目标是BAT,但根据自己目前情况来说,可能拿个京东也算是不错了,于是着手准备起来。
|
3月前
|
NoSQL 安全 Java
三面阿里被挂,竟获内推名额,历经5面拿下口碑offer(Java后台)
每一个互联网人心中都有一个大厂梦,百度、阿里巴巴、腾讯是很多互联网人梦寐以求的地方,而我也不例外。但是,BAT等一线互联网大厂并不是想进就能够进的,它对人才的技术能力和学历都是有一定要求的,所以除了学历以外,我们的技术和能力都要过硬才行。
|
3月前
|
安全 NoSQL Java
从安卓转到Java开发,我吃透了这份pdf,终于4面拿下美团offer
先说说个人情况吧,坐标广州,16年从一所普通二本大学毕业,毕业后在一家小公司干android开发,年薪在15w左右。转Java的契机是认识到了一个朋友,做Java后台的,经常跟他聊相关的内容,经过慎重考虑及个人的发展规划,所以就决定转型了。
|
3月前
|
NoSQL 安全 Java
差点跳起来了!全靠这份999页Java面试宝典,我刚拿到美团offer
事情是这样的,今年年初,在某个大博主那里拿到一份Java面试宝典,然后就一直躺在盘里吃灰,直到5月份的时候,有了要跳槽的计划和打算,就想着要刷刷面试题,所以就把这套“积灰”的面试宝典拿出看了看,这一看就看了一个多月才算是完整的吃透。7月中旬开始面试美团了,前后差不多5面的样子,原本以为没啥希望,等到月底29号收到了offer,通知8月3号到公司报到,看到邮件那一刻差点跳起来了!
|
4月前
|
Java C++
【剑指offer】-替换空格-02/67(JAVA版本未写)
【剑指offer】-替换空格-02/67(JAVA版本未写)