2021-07-16 尚硅谷_基本数据类型之间的运算规则

1、基本数据类型转换

前提:这里讨论的只是7种基本数据类型变量间的运算。不包含boolean类型的。

1.1、自动类型提升
  • 自动类型转换:容量小的类型自动转换为容量大的数据类型。数据类型按容量大小排序:
    charbyteshort——>int——>long——>float——>double
  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后进行计算。
  • byteshortchar之间不会互相转换,他们三者在计算时首先转换为int类型。
byte b1 = 2;
int i1 = 129;
// 编译不通过
// byte i2 = b1 + i1;
int i2 = b1 + i1;
  • boolean类型不能与其他数据类型计算。
  • 当把任何基本数据类型的值和字符串(String)进行连接运算(+)时,基本数据类型的值将自动转换为字符串(String)类型。

2、强制类型转换

  • 强制类型转换:自动类型提升的逆运算。
  1. 需要使用强转符:()
  2. 注意点:强制类型转换,可能导致精度损失。
  • 通常,字符串不能直接转换为基本类型,但通过基本类型对应的包装类则可以实现把字符串转换成基本类型。
  • boolean不可以转换为其他的数据类型。
// 精度损失举例1
double d1 = 12.3;
int i1 = (int)d1; // 截断操作
System.out.println(i1); // 12

// 没有精度损失
long l1 = 123l;
short s2 = (short)l1;

// 精度损失举例2
int i2 = 128;
byte b = (byte)i2;
System.out.println(b); // -128

3、变量运算规则的两个特殊情况

3.1、
// 1.编码情况1:long型变量后面没加l,相当于变量提升 int --> long
long l1 = 123123;
System.out.println(l1);
// 编译失败:过大的整数,当成int类型存储
// long l2 = 3434324342342353452;
long l2 = 3434324342342353452l;

// 编译失败:float一定要加f
float f1 = 12.3;
3.2、
// 2.编码情况2:
// 整形常量,默认类型为int型
byte b = 12;
// 编译失败
// byte b1 = b + 1;

// 浮点型常量,默认类型为double型
// 编译失败
// float f1 = b + 12.3;

4、String类型变量的使用

  1. String属于引用数据类型,翻译为:字符串。
  2. 声明String类型的变量时,使用一对""
String s1 = "Hello World!";
System.out.println(s1);

String s2 = "a";
String s3 = "";

// 编译不通过
// char c = '';
  1. String可以和8种基本数据类型做运算,且运算只能是连接运算:+,运算的结果仍然是String类型。
int number = 1001;
String numberStr = "学号:";
String info = numberStr + number; // +:连接运算
System.out.pringln(info);

5、二进制转十进制

  • java整数常量默认是int类型,当用二进制定义整数时,其第32位(最高位,从左往右第一个数字)是符号位;当是long类型时,二进制默认占64位,第64位(最高位)是符号位。
  • 计算机以二进制的形式保存所有的整数。
    1.正数的原码、反码、补码都相同。
    2.负数的补码是其反码+1。
  • 二进制的整数有如下三种形式:
    1.原码:直接将一个数值换成二进制数。最高位是符号位。
    2.负数的反码:是对原码按位取反,只是最高位(符号位)确定为1。
    3.负数的补码:其反码加1。

注意:计算机底层都以补码的方式来存储数据!

6、二进制与八进制十六进制之间的转换

6.1、二进制转八进制
二进制转八进制
6.2、八进制转二进制

八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。

6.3、二进制转十六进制
二进制转十六进制
6.4、十六进制转二进制

十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。


十六进制转二进制
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容