精华内容
下载资源
问答
  • 不是的,你这理解错误,也被混洧了,初学者最容易犯的错!int 四字节没错 byte一字节也没错但一个字节有8位哦!先看byte,byte占一字节,一字节等于八位我们来看看一个位能表示多少东西: 最小0 最大1 表示 2的1...

    54063839a1d49f323d772ca4a2fd1435.png

    不是的,你这是理解错误,也是被混洧了,是初学者最容易犯的错!

    int 四字节没错 byte一字节也没错

    但一个字节有8位哦!

    先看byte,byte占一字节,一字节等于八位

    我们来看看一个位能表示多少东西: 最小0 最大1 表示 2的1次方

    再看看两个位能表示多少东西: 最小00 最大11 共2的2次方, 能表达四个数

    再看看三个位能表示多少东西: 最小000 最大111 共2的3次方,能表达8个数

    那八个位能表示多少?

    最小:00000000 最大:11111111 这就是8位 也叫一个字节

    如果用数没有正负之分那可以表示 0~255 共256个数字. 也可以叫做 2的8次方,你用计算器算算,2的8次方是不是等于256?

    如果数有正负之分那可以表示-128~+127 也是256个数,因为8位里面拿走一个位用来表示正负了,所以只能表示最大127

    接下来 : 9位 = 2的九次方 =512个数字

    接下来: 10位 = 2的十次方 =1024 个 ..... 以此类推

    现在知道答案了吧:

    1 byte = 1字节 = 8bit 可表达 2的八次方个数字

    1 short= 2字节 = 16bit 可表达2的十六次方个数字

    1 int = 4字节 = 32bit 可表达2的32次方

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • 什么32768用short类型强制转换后变成-32768?3.为什么32768用char类型强制转换后变成0?相关链接 以下内容基于系统为32位,64位也行 1. 代码如下(C语言) #include <stdio.h> int main(){ short a=...

    以下内容基于系统为32位,64位也行

    1. 代码如下(C语言)

    #include <stdio.h>
    int main(){
        short a=(short)(32768);
        char c = (char)(32768);
        printf("%d\n",a);//-32768
        printf("%d\n",c);//0
    }
    

    2.为什么32768用short类型强制转换后变成-32768?

    • 易知short类型的范围为-32768~32767
    • 32768用二进制表示为:1000 0000 0000 0000
    • 由于short类型占2字节=16位,因此转换时,系统会查看这16位的数。我们知道,16位二进制数可以表示2^16个编码,而在补码中零的编码只有一个,也就是补码中会比原码多一个编码出来,这个编码就是1000000000000000,因为任何一个原码都不可能在转成补码时变成1000000000000000。所以,人为规定1000000000000000这个补码编码为-32768。

    3.为什么32768用char类型强制转换后变成0?

    • 易知char类型的范围为-256~255
    • 32768用二进制表示为:1000 0000 0000 0000
    • 由于char类型占1字节=8位,因此转换时,系统会只查看最后8位,因此得0000 0000,相当于将32768%256,得到的余数就是转换后的结果。显然结果为0
    • 如果用32769那么就会得到1。 想一想为什么?

    相关链接

    展开全文
  • 题目: 表达式(short)10/10.2*2运算后结果是什么类型?–牛客网. 表达式(short)10/10.2*2运算后结果是什么类型? A. short B. int C. double D. float 正确答案:double 示例代码: public class ...

    题目: 表达式(short)10/10.2*2运算后结果是什么类型?–牛客网.

    表达式(short)10/10.2*2运算后结果是什么类型?
    A. short
    B. int
    C. double
    D. float
    正确答案:double

    分析

    Java中的运算符,一元运算符优先级很高,四则运算符其次,再是移位运算符,然后是关系运算符、位运算符、与或(非是一元运算),最后是赋值运算符。
    用圆括号强制类型转换属于一元运算符,先于乘除运算,所以此时有(short)10除以10.2,10.2为浮点数,Java浮点数默认为double,因此计算除法时,将short转换为double型,后面乘法同理,最后结果即为double型。

    • 注意:
      java 黙认浮点类型为double
      float数据类型有一个后缀为" f “或” F “。
      long类型有一个后缀,为” l " 或者" L "。

    示例代码:

    public class ShortTest {
    	public static void main(String[] args) {
    		double i = (short) 10 / 10.2 * 2;
    		System.out.println(i); // 1.9607843137254903
    	}
    }
    
    展开全文
  • 什么将 int 类型的12312341强转为 short 类型后,输出会 -8427呢,而262199强转后却变成了55。再一顿查找计算机组成原理书后,终于恍然大悟。 解析 首先 int 类型是占32位,而 short 类型是占16位 在计算机中...

    前言

    今天在复习Java基础时,遇到了一个问题,这也是为之前没学好Java基础和计算机组成原理补的一个坑。

    问题

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

    为什么将 int 类型的12312341强转为 short 类型后,输出会是 -8427呢,而262199强转后却变成了55。再一顿查找计算机组成原理书后,终于恍然大悟。

    解析

    首先 int 类型是占32位,而 short 类型是占16
    在计算机中表示的带符号的二进制数称为“机器数”,而机器数有3中表示方法:原码、反码、补码
    而计算机都是用补码进行运算的
    因此,我们在int强转为short时,就是截取int类型数值的低16位,再将其转换为补码

    详细过程:

    例1:12312341转换为short类型

    在这里插入图片描述
    取其低16位为:1101 1111 0001 0101

    负数的反码是在其原码的基础上, 符号位不变,其余各个位取反
    而负数的补码就是在其反码的基础上+1

    因此其补码为 1010 0000 1110 1011,转换为10进制就是 -8427

    在这里插入图片描述

    例2:262199转换为short类型

    在这里插入图片描述
    取其低16位为:0000 0000 0011 0111

    正数的反码和补码都和原码一样

    因此其补码为0000 0000 0011 0111,转换10进制就是55

    总结

    继续复习Java基础吧!

    展开全文
  • package Test; import java.util.Arrays; public class Test{ public static void main(String[] args){ short a = 1; short b = 1; //short c = a+b;//报错 short c = (short)(a...
  • 隐式转换只能由精度低的数据类型向精度高的数据类型转换 精度定义:表示观测值与真值的接近程度 这个接近程度 不一定非得相当微小...重点来了 int 和 short整数类型 整数类型哪来的精度高低呢? 根据精度的
  • short getNodeType() 表示基础对象的类型的节点,如上所述。 这个方法Node里的,为什么返回值是short? 还有 if( node.getNodeType()==Node.ELEMENT_NODE) 该怎样理解?
  • Java中进行二元与运算类型的提升规则整数运算:如果两个操作数有一个为long,则结果也为long;没有long时,结果为int。即使操作数全为short、byte,结果也int。...为什么两个short类型相加会自动提升为i...
  • short类型问题

    2012-03-20 07:56:33
    short类型问题 short s1 = 1;... (s1+1运算结果int型,需要强制转换类型short s1 = 1; s1 += 1;(可以正确编译) 这里涉及到变量类型统一的问题 有这样的规则,1.高位转低位需要强制转换 ...
  • short 和 int 类型的转换

    万次阅读 2017-09-19 09:17:16
    由于运算的时候会自动的提升表达式的类型,所以结果int型,再赋值给s1;编译器会报需要强制转换类型的错误, 对于short s1=1;s1+=1;由于+=java语言规定的运算符,java编译器会自动的对它进行特殊处理,所以可以...
  • 2、无符号类型和带符号类型的区别是什么? 带符号类型表示正数或负数(包括0),而无符号类型只能表示大于或等于0. 按照概念推理,说明int类型是无符号,写成unsigend int 表示我建立的这个int类型只能表示大于或...
  • 关于short 类型

    千次阅读 2010-01-09 11:24:00
    short s = 1;为什么s += 1没错,s = s + 1就有错?...Java的自动类型转换一个占用空间少的类型可以自动转换成占用空间大的类型,反之则必须强制类型转换,否则报错。“s + 1”这个表达式因为是short型和int型相加,因
  • 举例 float a = 3.14F,如果没有这个F,会编译不通过的,会报错,这因为在java中浮点数默认Double类型的,double范围比float范围大,在java中大范围数据类型转小范围需要强制转换的,因为 float a = (float)3.14 ...
  • byte类型数据不能直接相加的,相加会自动类型会转换int型,因此这里应该使用强制转换。这修改后的程序。运行结果正确再比如:byte a=1;byte b=2;byte c;c=a+b; //这样计算不出c,错误的c=a+1; //这样也不能...
  • 1.我在同类中定义的enum,在静态方法中可以访问.难道enum类型是静态的吗 2.enum k:string出现错误,难道...2,enum类型仅限于long、int、short 和byte。 3,string  System.String的别名,没有什么区别,只不过
  • 《java深入解析》中例子:一、隐式类型转换在平时对byte char short这几个范围较小的类型声明并赋值时,往往忽略了一个问题。在Java源文件当中为变量赋值时经常使用...那么为什么在对byte char short赋值时没有对...
  • 什么short类型取值范围为-32768~32767

    万次阅读 2016-08-31 20:22:28
    先说说二进制的补码和原码。 1、补码(two's complement) 1、在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法...(2)负数的补码保留符...
  • 什么Java byte 类型的取值范围-128~127 0 00000000 1 00000001 ... ........ 127 01111111 ---------------- 共 128 个 -1 11111111 -2 11111110 ... ... -128 10000000 -----------...
  • 为了能吸引您了解short,我们先做个小测验...结果是什么? Q1. short s1 = 9;short s2 = 011; Q2. Short sob = 9; Short sob1 = new Short(9); Q3. 如果成功得到Q2的sob,sob1,那么 sob.equal(sob1),sob.equal(0x...
  • 在java运算中,在涉及到数据类型范围小于int的(如byte,char,short)时,数据类型会自动提升为int类型,比如,两个byte类型的数据在进行运算时,运算结果就会变成int类型,如果要结果byte类型的话,就要强转成...
  • java值类型是什么java值类型也就是基本数据类型,基本数据类型常被称为四类八种四类:1,整型 2,浮点型 3,字符型4,逻辑型八种:1,整型4种 byte(2的3次方),short,int,long(2的6次方)2,浮点型2种 float,...
  • 转自:http://1035054540-qq-com.iteye.com/blog/1458005,讲解的非常清楚,推荐一下short类型问题 short s1 = 1; s1 = s1 + 1;有什么错?... (s1+1运算结果int型,需要强制转换类型short s1 =
  • 第一眼看这个问题,能想到数据类型转换、 s1 = s1 + 1与复合赋值运算s1+=1问题的区别,深入可能 += 的使用注意事项。这里由于思考了比较久,然后查阅了一些博客和官方文档关于 += 的赋值运算说明,这里做一下记录...
  • 问题内容:char和short双字节16bit长的数值类型,为什么相互赋值会提示精度丢失? http://community.csdn.net/expert/topicview1.asp?id=4466700 J2SE / 基础类 审核组:JAVA ztpia 解决者:steedhorse ...
  • 一、8种基本数据类型(4整,2浮,1符,1布):整型:byte(最小的数据类型)、short(短整型)、int(整型)、long(长整型);浮点型:float(浮点型)、double(双精度浮点型);字符型:char(字符型);布尔型:boolean(布尔型)。二...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,763
精华内容 1,105
关键字:

short是什么类型