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的值不变。

  • 相关阅读:
    PHP fread() 函数
    PHP fputs() 函数
    PHP fputcsv() 函数
    PHP fpassthru() 函数
    分区表基本类型
    C# const 和 readonly 有什么区别
    win2d 画出好看的图形
    win2d 画出好看的图形
    win2d 渐变颜色
    win2d 渐变颜色
  • 原文地址:https://www.cnblogs.com/dust2017/p/12706088.html
Copyright © 2011-2022 走看看