java 里面 long 转换int内存分析

了解补码知识点

要将补码转换为十进制,需要确定补码的符号位。如果补码的符号位为1,则表示为负数,否则表示为正数。

假设我们有一个补码为1 0110 1011 1100 1101 1000 0011 1101 1100
0010 1101 1111 1101 1100 0001 1100 0011 0100
首先,确定符号位。根据补码的规则,最高位的1表示负数,因此这个补码表示一个负数。

将除符号位外的其余位取反。得到反码:0 1001 0100 0011 0010 0111 1100 0010 0011

将反码转换为原码。对于负数,反码加1即可得到原码:0 1001 0100 0011 0010 0111 1100 0010 0100

将原码转换为十进制。根据原码的规则,最高位的1表示负数,因此这个原码表示一个负数。

将其余位转换为十进制,得到的结果为:-539222988。

因此,补码101101011110011011000001111011100转换为十进制为-539222988

先考虑如何将二进制补码转换为十进制整数:
若符号位是0, 则该数是正数, 原码等同于补码. 可以由原码(也就是补码)得知代表的正整数.
若符号为是1, 则该数一定是负数, 可按照以下方式转换:
方式一: 先把符号位去掉, 把剩下的非符号位取反后得到一个无符号位的二进制序列, 将该二进制序列转换为十进制整数(注意:无符号位二进制序列代表的一定是正数),
将该整数加1得到的数便是原补码代表的整数的绝对值. 如: a = 1011(补码), 011取反得到100, 100代表4, 4+1=5,
|a|=5, a=-5.
方式二: 利用公式: (-1)2^(n-1) + 非符号位代表整数 = 值. 如a =1011(补码), n = 4, 011代表3 a = -12^3 + 3 = -5.

long转换为int

在Java中,将Long类型转换为int类型时,会发生类型转换和内存表示的变化。下面是转换的内存分析:

原始的Long类型的值以二进制补码形式存储在内存中。补码是一种表示有符号整数的方法,其中最高位表示符号位,0表示正数,1表示负数。

当将Long类型的值转换为int类型时,首先将Long类型的值截断为32位,只保留低32位。

如果截断后的32位二进制表示的值在int类型的范围内,转换的结果就是该32位二进制值。

如果截断后的32位二进制表示的值超出了int类型的范围,将发生溢出。溢出时,只保留截断后的32位二进制值的低32位,丢弃高位。

如果截断后的32位二进制值的最高位为1,表示负数,转换结果为负数的二进制形式。

示例1:

Long longValue = 1234567890L;
int intValue = longValue.intValue();

在这个示例中,longValue的
二进制: 10 1101 1111 1101 1100 0001 1100 0011 0100
二进制补码:0010 1101 1111 1101 1100 0001 1100 0011 0100

将其截断为32位后:1101 1111 1101 1100 0001 1100 0011 0100 (补码)
根据补码的规则,最高位的1表示负数,因此这个补码表示一个负数。将除符号位外的其余位取反。
方式一
按位取反得到反码:1010 0000 0010 0011 1110 0011 1100 1011
加1 得到原码
1010 0000 0010 0011 1110 0011 1100 1100 去掉第一位转换为十进制数为 539 222 988
1表示负数
转换为int类型的结果为:-539 222 988

方式二
按位取反:1010 0000 0010 0011 1110 0011 1100 1011 其对应的十进制数为 539 222 987
加1 539 222 988 |a|=539 222 988, a=-539 222 988
-10 0000 0010 0011 1110 0011 1100 1100
转换为int类型的结果为:-539 222 988

在这里插入图片描述
在这里插入图片描述

示例2:

Long longValue = 6444823059L;
int intValue = longValue.intValue();

在这个示例中,longValue的二进制
二进制: 1 1000 0000 0010 0100 0011 0010 0001 0011
补码: 0001 1000 0000 0010 0100 0011 0010 0001 0011

将其截断为32位后:1000 0000 0010 0100 0011 0010 0001 0011
根据补码的规则,最高位的1表示负数,因此这个补码表示一个负数。将除符号位外的其余位取反。
方式一
按位取反得到反码:1111 1111 1101 1011 1100 1101 1110 1100
加1 得到原码
1111 1111 1101 1011 1100 1101 1110 1101 去掉第一位转换为十进制数为 2 145 111 533
1表示负数
转换为int类型的结果为:-2 145 111 533

方式二
按位取反:1111 1111 1101 1011 1100 1101 1110 1100
其对应的十进制数为 2 145 111 532
加1 2 145 111 533 |a|=2 145 111 533, a=-2 145 111 533

转换为int类型的结果为:-2 145 111 533

在这里插入图片描述

在这里插入图片描述

示例3:

Long longValue = 6191460207L;
int intValue = longValue.intValue();

在这个示例中,longValue的二进制
二进制: 1 0111 0001 0000 1010 0010 1111 0110 1111
补码: 0001 0111 0001 0000 1010 0010 1111 0110 1111

将其截断为32位后:0111 0001 0000 1010 0010 1111 0110 1111
根据补码的规则,最高位的0表示正数,因此这个补码表示一个正数,正数的补码就是原码本身
0111 0001 0000 1010 0010 1111 0110 1111

转换为int类型的结果为:1 896 492 911

在这里插入图片描述
在这里插入图片描述

二进制在线转换地址
http://binary-converter.bchrt.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/108027.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据时代的软件开发实践:利用云计算和AI赋能创新

文章目录 云计算的赋能弹性资源管理远程协作与分布式开发持续集成和持续交付成本效益 人工智能的赋能数据驱动的决策自动化智能预测和优化自适应系统 创新的实践方法数据驱动的创新智能化产品开放式创新迭代和反馈 🎈个人主页:程序员 小侯 🎐…

C#,《小白学程序》第三课:类、类数组与排序

1 文本格式 /// <summary> /// 同学信息类 /// </summary> public class Classmate { /// <summary> /// 学号 /// </summary> public int Id; /// <summary> /// 姓名 /// </summary> public string Nam…

VR智慧课堂 | 临床兽医学VR实验教学有哪些好处?

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐渗透到各个领域&#xff0c;为人们带来了前所未有的体验。在动物医学实验教学中&#xff0c;VR技术的应用也日益受到关注。本文将探讨临床兽医学VR实验教学的好处。 首先&#xff0c;VR技术能够提高动物医学实验的安全性…

【25考研】- 整体规划及高数一起步

【25考研】- 整体规划及高数一起步 一、整体规划二、专业课870计算机应用基础参考网上考研学长学姐&#xff1a; 三、高数一典型题目、易错点及常用结论&#xff08;一&#xff09;典型题目&#xff08;二&#xff09;易错点&#xff08;三&#xff09;常用结论1.令tarctanx, 则…

抖音seo矩阵系统源代码开发部署分享

一、 开发步骤分享 抖音SEO矩阵系统源代码开发部署分享&#xff0c;需要经验丰富的开发人员和服务器管理人员&#xff0c;以下是大致的步骤&#xff1a; 确定你需要的功能和设计&#xff0c;确定开发人员和设计师的角色和任务分配&#xff0c;以及开发进度和计划。 确定服务器…

【趣味随笔】怎么维护自己的电脑?

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

node.js安装好后测试报错解决

node.js的版本是18.X.X node.js安装好后&#xff0c;执行命令&#xff1a; npm install express -g 报错&#xff01;&#xff01;&#xff01; 解决办法&#xff1a; 看报错是由于权限不够&#xff0c; 所以打开cmd时&#xff0c;以管理员的方式打开 然后再执行命令就OK了…

SpringCloud学习笔记(十)_SpringCloud监控

今天我们来学习一下actuator这个组件&#xff0c;它不是SpringCloud之后才有的&#xff0c;而是SpringBoot的一个starter&#xff0c;Spring Boot Actuator。我们使用SpringCloud的时候需要使用这个组件对应用程序进行监控与管理 在SpringBoot2.0版本中&#xff0c;actuator可以…

chatGPT界面

效果图&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html> <head><title>复选框样式示例</title> </head> <style>* {padding:0;margin: 0;}.chatpdf{display: flex;height: 100vh;flex-direction: row;}.chatpdf .pannel{widt…

CSS中的margin与padding

目录 一、margin 1.概念及作用 2.基本语法 3.margin的用法 二、padding 1.介绍 2.基本语法及要求 3. 用法 4.内边距和元素宽度 讲这些之前&#xff0c;先看一张图&#xff0c;便于理解 一、margin 1.概念及作用 CSS margin 属性用于在任何定义的边框之外&#xff0c;…

若依vue打印的简单方法

像我们后端程序员做前端的话,有时候真不需要知道什么原理,直接塞就好了 我们选用基于hiprint 的vue-plugin-hiprint来打印 目的是为了实现点击某些行的数据,然后点击某个按钮直接弹出下面的打印 此链接 大佬是原创,我拿来总结梳理一下 插件进阶功能请移步: 链接 插件模板制作页…

机器学习实战之模型的解释性:Scikit-Learn的SHAP和LIME库

概要 机器学习模型的“黑箱”困境 机器学习模型的崛起让我们惊叹不已&#xff01;不论是预测房价、识别图片中的猫狗&#xff0c;还是推荐给你喜欢的音乐&#xff0c;这些模型都表现得非常出色。但是&#xff0c;有没有想过&#xff0c;这些模型到底是如何做出这些决策的呢&a…

使用rook搭建Ceph集群

宿主机&#xff1a; MacBook Pro&#xff08;Apple M2 Max&#xff09; VMware Fusion Player 版本 13.0.2 VM软硬件&#xff1a; ubuntu 22.04.2 4核 CPU&#xff0c;5G 内存&#xff0c;40G硬盘 *每台机器分配硬件资源很重要&#xff0c;可以适当超过宿主机的资源量&am…

算法通关村——解析堆在数组和链表的应用

1. 堆 1.1 什么是堆&#xff1f; 堆是将一组数据以完全二叉树的形式存储在数组里面。一般有大根堆和小根堆。 小根堆&#xff1a;任意节点的值小于等于它的左右孩子&#xff0c;最小值在堆顶。 大根堆&#xff1a;任意节点的值大于等于它的左右还是&#xff0c;最大值在堆顶。…

基于Android的垃圾分类系统 微信小程序 uniapp

随着网络科技的发展&#xff0c;移动智能终端逐渐走进人们的视线&#xff0c;相关应用越来越广泛&#xff0c;并在人们的日常生活中扮演着越来越重要的角色。因此&#xff0c;关键应用程序的开发成为影响移动智能终端普及的重要因素&#xff0c;设计并开发实用、方便的应用程序…

Redis之stream类型解读

目录 基本介绍 数据结构 消息 消费组 消费者 基本使用命令 概述 xadd 命令 xtrim 命令 xdel 命令 xlen 命令 xrange 命令 xread 命令 xgroup 命令 xreadgroup 命令 xack 命令 基本介绍 Redis stream&#xff08;流&#xff09;是一种数据结构&#xff0c;其…

【TA 挖坑03】雾效 | 透光材质 | Impostor | 厚度转球谐

仍旧是记录下半年想要做的东西&#xff0c;很有趣&#xff0c;实现“一团雾效” “面片也有立体感” 等等效果的一些技术上的方法。 仅粗浅记录&#xff0c;保证之后自己填坑的时候看得懂就行&#xff01; 透光 -> 透光材质ShadingModel 《永劫无间》透光材质的渲染&…

PHP自己的框架cookie()使用(完善篇七)

1、PHP自己的框架cookie() 2、cookie类&#xff08;CookieBase.php&#xff09; <?php class CookieBase {/*** 设置cookie*/public static function set($name, $value, $expire 3600, $path , $domain , $secure false, $httponly false) {setcookie($name, $valu…

几个nlp的小任务(抽取式问答)

几个nlp的小任务(抽取式问答) 安装库抽取式问答介绍、SQuAD数据集初始化参数加载、导入数据集查看数据集示例加载tokenizer对长文本处理的演示对答案的位置进行验证整合刚才的步骤对数据集中的数据进行预处理加载微调模型设置args 参数使用数据清洗设置训练函数,开始训练安装…

人员着装识别算法 yolo

人员着装识别系统通过yolo网络模型识别算法&#xff0c;人员着装识别系统算法通过现场安装的摄像头识别工厂人员及工地人员是否按要求穿戴着装&#xff0c;实时监测人员的着装情况&#xff0c;并进行相关预警。目标检测架构分为两种&#xff0c;一种是two-stage&#xff0c;一种…