两个正数相乘或相加,为什么结果是负数。/Java基本数据类型介绍
两个正数相乘或相加,为什么结果是负数。
首先
1.Java基本数据类型
分为四大类,共八小类
整数型 :byte、short、int、long 分别占 1、 2、 4、 8 个字节
浮点型: float、double 4、 8 个字节
字符型 :char 2 个字节
布尔型: boolean 布尔类型占多少个字节? Java中没有明确规定boolean类型占用几个字节,这主要取决于Java虚拟机,自己见解是,boolean类型一共两种取值,true或false,true就是1,false就是0,所以只占1位(bit)。
1byte(字节)= 8 bit(位)
- 一个byte表示的数的范围:256个数
无符号数:0-255(2^8-1) 256个数
有符号数:-128(-2^7)-- 127 (2^7-1) 还是256个数 - short 2个字节 16位
范围是 (-2^15) 到(2^15-1) 3万多之间
2. 这里通过两个正数都是int类型来举例
(int num1 = 90000; int num2 = 90000; int result = num1 * num2;)
由上可知 int类型为32位(bit)–>大概在正负21亿之间,-2^31
到(2^31)-1 --> 二进制正数最高位一定为0,负数最高为一定为1。
十进制:90000 × 90000
二进制:0000 0000 0000 0001 0101 1111 1001 0000 × 0000 0000 0000 0001 0101 1111 1001 0000
结果为:1 1110 0010 1100 1100 0011 0001 0000 0000 (十进制是 -1657549056)
溢出了,只看低32位,最高位是1,所以计算出的结果显示负数。
3.其它
3.1隐式类型转换原则:
从低字节向高字节转换
byte --> short --> int --> long --> float --> double
算数运算:
如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
否则,如果其中一个操作数是long类型,另一个会转换为long类型。否则,两个操作数都转换为int类型。
3.2强制类型转换
- 用于将一种数据类型强制转换成另一种数据类型,但可能造成精度降低或溢出。
- 语法格式:目标类型 变量 =(目标类型)源类型变量或常量
- 例如:
public static void main(String[] args) {float a = 123.23f;byte b = (byte)a; // 注意:强转之后有可能会丢失精度System.out.println(b); // 输出:123// 注意:原类型数据被强转后数据是不会变化。System.out.println(a); // 输出:123.23
4.记录
C语言:面向过程语言。可以对机器进行操作。贝尔实验室。
C++:在C语言的基础上进行改进的,半面向对象半面向过程。
Java:在C++的基础上进行改进的,面向对象。(SUN公司发明的,2009年,甲骨文(Oracle)公司宣布收购SUN 。2010年,Java编程语言的共同创始人之一詹姆斯·高斯林从Oracle公司辞职)
最大的核心是可以跨平台,Java跨平台是 **一次编译,到处运行,通过将源代码先编译成字节码文件,然后通过不同平台上的虚拟机进行解释执行。C语言跨平台是多次编译,到处运行,**通过根据不同平台,然后编译成不同的机器语言,然后在不同平台执行的结果是相同的。Java的跨平台原理决定了其性能没有C/C++高,由于使用了JVM虚拟机。
C#:是在Java的基础上进行改进的,但为什么没有Java火,C#最大的缺点是只支持微软这个平台(生态环境)。
微软之于C#如同萧何之于韩信,成也萧何,败也萧何.
两个正数相乘或相加,为什么结果是负数。/Java基本数据类型介绍相关推荐
- 两个正数相乘为什么结果是负数
前言 说来实在惭愧,用spark处理hive表中的数据时,出现了两个正数相乘最后结果显示为负数后我的第一反应竟然有点懵逼,充分说明了自己在使用数据时,对Hive表中的字段类型没有进行充分的了解,当时, ...
- 【Pandas】解决在pandas中的两个正数相乘结果为负值
前几天使用sklearn拟合数据,发现曲线特别离谱,找了很久的原因,最后发现是因为我在代码中对特征进行了特征之间的相乘操作,来增加特征的维度,但是两个正数相乘之后,变成了负数: 下图中 xi 为所有数 ...
- llist对象两个属性相乘在相加_Java8使用stream实现list中对象属性的合并(去重并求和)...
前言 需要对一个List中的对象进行唯一值属性去重,属性求和,对象假设为BillsNums,有id.nums.sums三个属性,其中id表示唯一值,需要nums与sums进行求和,并最后保持一份. 例 ...
- Java设计两个矩阵相乘的方法
新建一个类名matrix,包名为:cn.xx.xx,两个矩阵相乘的程序源代码如下: import java.util.Scanner; public class Matrix { /* 矩阵 ...
- 蓝桥杯真题 求和 给定 n 个整数 a1· a2, · · · , an,求它们两两相乘再相加的和
求和 问题描述 给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即: S=a1·a2+a1·a3+···+a1·an+a2·a3+···+an-2·an+an-1· ...
- excel相乘再相加_(excel 两列相乘再相加)excel表格两列数据乘积
Excel求两列的乘积用什么公式啊 1.Excel 2016电子表格应用程序,所示点击屏幕右侧新建空作簿: 2.选中销售额单元格数域,如图所示.选择"公式→函数库"功能区,点击&q ...
- c语言用编译器求两个整数之和的代码,使用OC语言编撰两个超大数相乘或相加的算法的思路和超大正整数相乘的代码...
使用OC语言编写两个超大数相乘或相加的算法的思路和超大正整数相乘的代码 正文: 在编程中,无论是OC还是C亦或是C++语言,所声明的整数变量都会在内存中占有固定的存储空间,而这些存储空间都是固定的. ...
- 大数相乘、大数相加、大数相减Java版本
为什么80%的码农都做不了架构师?>>> 题目:两个非常大的数字相乘(相加,相减) 该题目在java中可以使用BigInteger类中的方法来实现.否则的话可以使用如下方式来实 ...
- jsp中两个double相乘_图像处理中的代数运算及几何变换
图像运算是图像处理中常用的处理方法,它以图像为单位进行操作,运算的结果是一副新的图像,常常用于图像的高级处理(如图像分割,目标的检测和识别等)的前期处理.具体的图像运算包括点运算,代数运算,几何运算和 ...
最新文章
- 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质示例 | 证明 原序列实部 x_R(n) 的 傅里叶变换 是 原序列傅里叶变换 的 共轭对称序列 )
- 深入理解javascript原型和闭包(5)——instanceof
- Solr 4.3.0 配置Data import handler时出错
- 那些感动过我的句子(英文版)
- FreeWheel容力:如何打造更高质效的技术团队
- Edge浏览器,设定主页(默认打开页面)方法
- 【算法】Quick Select
- 清理了两位同事的机器,走人时要自行清理
- 安卓饼状图设置软件_android开源图表库MPAndroidChart(曲线图、直方图、饼状图)...
- 推荐24款好用的数据可视化分析工具,个个堪称神器!
- OpenCV中Rect()函数常用操作和使用详解(含绘图示例)+Rectangle()函数用法
- windows上装Ubuntu
- 【智慧医疗】EMR vs EHR vs PHR 有何区别?
- TCP/IP传输层协议实现 - TCP的坚持定时器(lwip)
- gtx1660是什么级别的_显卡天梯图秒懂GTX1660Ti性能 GTX1660Ti相当于什么显卡
- 搜索邻近计算机打印机,在活动目录中设置和管理发布打印机
- 【方法论】从入门到精通是怎样一种体验
- 为Linux发行版安装中文字体
- git Cherry-pick Failed your local changes would be overwritten by cherry-pick. hint: commit your
- java从高位到低位输出_任意输入一个正整数,从高位向低位依次输出,或从低位向高位依次输出(数组,调用函数两种方法)...