zoukankan      html  css  js  c++  java
  • day02作业-------Java语言基础数量部分

    作业

    1. 将67转换为 二进制,八进制,十六进制,将 0b10100101, 0345, 0xef 转换为十进制

    2. 字长为8,已知原码 0110 1010 和 1100 0110, 求它们的补码,已知补码 0110 1010 和 1100 0110, 求它们的原码

    3. 语句byte b = 300;编译能通过吗?如果不能,怎样让它通过?转换之后其值是多少?

     

    答案:

    1.
    67 -->   0b1000011
         -->   (001)(000)(011)  -->  0103
         -->   (0100)(0011)  -->  0x43
    0b10100101 = 1*2^7+0*2^6+1*2^5+0*2^4+0*2^3+1*2^2+0*2^1+1*2^0  = 165
    0345 = 3*8^2+4*8^1+5*8^0 = 229
    0xef = e*16^1+f*16^0 = 239

    2.
    a.原码0110 1010的补码0110 1010,
    b.原码1100 0110的补码1011 1010,
    c.补码0110 1010的原码0110 1010,
    d.补码1100 0110的原码1011 1010.

    3.
    编译不能通过,把语句改为byte b = (byte)(300); ,这样能编译通过,通过后b的值为44。

    300 = 256 + 32 + 8 +4 -->二进制原码  0,1 0010 1100

    300的补码为0,1 0010 1100

    300超过byte型数据的取值范围(-128--127),用强制类型转换为byte型,数据溢出,会丢失精度。

    b的补码为0,010 1100

    b的原码为0,010 1100  --> 结果为44.

    或者可以把变量b定义为int变量,int b = 300;,这样b的值不变。

  • 相关阅读:
    linux(cat,more,less,head)——对文件显示进行查看操作
    linux(ln)
    Linux(touch)
    Linux(cp)
    Linux(rmdir,rm,mv)
    Linux(mkdir)
    一个对象是否能够引用该类其他实例的私有成员?
    圆角图标
    android.content.ReceiverCallNotAllowedException问题解决
    list view item高度设置
  • 原文地址:https://www.cnblogs.com/dust2017/p/12706088.html
Copyright © 2011-2022 走看看