面试题,关于int类型转byte类型结果溢出
1 package com.atguigu.chapter03
2 /*
3 byte:-128~127
4 128 : Int类型,占4个字节,32位
5 计算机中的整型数据都以补码的形式存储,正数的补码是其本身,负数的补码除符号位外取反+1
6 负数补码求原码,符号位为1不变,其余取反+1
7 128原码:0000 0000 0000 0000 0000 0000 1000 0000
8 128补码:0000 0000 0000 0000 0000 0000 1000 0000
9
10 截取补码最后一个字节:Byte
11 得到结果的新补码:1000 0000 表示最大的负数为-128
12 所以128结果溢出得-128
13 那么可以推出:如果溢出为130,那么得到结果为-126
14 */
15 object Problem_DataTypeConversion {
16 def main(args: Array[String]): Unit = {
17 val n:Int =130
18 val b:Byte=n.toByte
19 println(b)
20 }
21 }
面试题,关于int类型转byte类型结果溢出的更多相关文章
- int类型和byte类型的强制类型转换
今天在读<Java网络编程>这本书的第二章 流 时,看到书中有一个地方关于int强制转换为byte类型时应注意的地方.这个地方有点细节,不过就应该把这种细节把握住. 情况是这样的,讲到In ...
- java里int类型转byte类型
今天在做书上的一个例子的时候, 要使用byte类型,首先我很直接的就写到了byte b = 0XAA, 结果报错, 说从int转换到byte可能会有损失. 我当时就很奇怪, 为什么会出现这种情况呢? ...
- Java类型相互转换byte[]类型,blob类型
在我们的程序开发当中,经常会用到java.sql.Blob.byte[].InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们 ...
- C# Bitmap类型与Byte[]类型相互转化
Bitmap => byte[] Bitmap b = new Bitmap( "test.bmp "); MemoryStream ms = new Memory ...
- int类型被强制转换成较低精度的byte类型
公司的项目上线之前会进行代码合规性检查,其中很容易违反的一个规则就是“不要把原始类型转换成较低的精度”,实际开发的过程中,很多方法在处理数据时,尤其在做移位操作的时候,难免要把int类型转换成byte ...
- C#byte类型
byte类型的范围是0~255转换为二进制是00000000~11111111 ---------------------------------------------------------- C ...
- int类型转换byte类型
计算机中,int类型占用4个字节,byte类型占用1个字节: 当int类型强转为byte类型时,计算机会截取最后的八位(1个字节): 由于计算机存储数据时,都是以补码的形式进行存储. 然而,我们通常看 ...
- JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean
由于JAVA的基本类型会有默认值,例如当某个类中存在private int age;字段时,创建这个类时,age会有默认值0.当使用age属性时,它总会有值.因此在某些情况下,便无法实现age为nu ...
- C#int类型 转Byte[]
方法1:使用左移和右移 int转化为byte[]: public byte[] intToBytes(int value) { byte[] src = ...
- 如何用一个语句判断一个整数是不是二的整数次幂——从一道简单的面试题浅谈C语言的类型提升(type promotion)
最近招聘季,看JULY大哥的面试100题时,碰到这么一个扩展问题: 如何用一个语句判断一个整数是不是二的整数次幂?(此题在编程之美也有) easy, 2的整数次幂的二进制形式只有一个1,只要用i和i- ...
随机推荐
- MySQL数据库备份与恢复方法
MySQL数据库备份与恢复方法 mysql -uroot -p show databases; 1.导出数据库 1).MySQL命令行导出整个数据库(包含数据) 导出文件默认是存在mysql\bin目 ...
- 团队协作如何确保项目Node版本的一致性?
前言 想必大家在工作过程中都遇到过node版本带来的各种各样的问题,对于团队协作项目,你不能保证所有人的本地node版本都相同,所以在项目文档中往往会写上以下内容: 为与线上环境一致,请保证以下版本 ...
- RHEL8重置root用户密码步骤
要先确定是否为RHEL 8系统. [root@zhangsan ~]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.0 (Oo ...
- linux7/8版本的docker-ce安装(2022/5/27亲测可行)
centos7 # 先配阿里源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl - ...
- 【Azure 应用服务】App Server 部署后,Docker报错,找不到8080端口
问题描述 App Service for Container. Docker Image 推送到ACR(向 Azure 容器注册表), 配置App Service并部署成功了.查看Docker日志( ...
- 读 NebulaGraph源码 | 查询语句 LOOKUP 的一生
本文由社区用户 Milittle 供稿 LOOKUP 是图数据库 NebulaGraph 的一个查询语句.它依赖索引,可以查询点或者边的信息.在本文,我将着重从源码的角度解析一下 LOOKUP 语句的 ...
- LTS1.3秘钥导出和身份验证计算过程
具体的参照描述协议规范文档 TLS1.3 RCF:8446 最新一版 协议描述的密钥推导计算流程图: TLS1.3内部非复杂程度难以想象.到底CPN Tools能否支撑分析TLS,我现在从新要整 ...
- masscode.io snippets 和 vscode 联动 代码片段
https://masscode.io/ 软件作用 代码片段 vscode 可以联动使用 下载不行 慢的话, 下载 fastgithub,打开后再下载
- InputRegZen.vue 正则Input 限制输入框输入内容
核心内容 已经 perfect,没有用外库,原生完成 用的 iview的Input组件 封装 // InputRegZen.vue <template> <div> <I ...
- coast 海岸 单词记忆方法
coast 海岸 单词记忆方法 coa 扣 想象一个碗扣下去 st站 碗的边和地面的接触面 就是海岸的边 coast 逼近的地方-海岸 coast (n.) - "margin of the ...