QQ群78928780记录整理:90519技术话题-部分

                                                                                                        
一、代码细节问题
刘力(402149997)
public static String formatDate(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        System.out.println(date);
        return sdf.format(date);
    }
陈聚雄(457972538)
import java.util.Date;
import java.text.*;

public class Test{
       
   public static void main(String[] args){
    Date d = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    System.out.println(sdf.format(d));
            }
    }
刘力(402149997)
yyyy-MM-dd hh:mm:ss
这里不同 为什么呢
陈聚雄(457972538)
hh指的可能是12小时制。HH指24小时制。

 
二、原码,补码,反码
浩为-admin(914529681)
原码是机器数的一种简单的表示法。数值在计算机中表示形式为机器数,计算机只能识别0和1,使用二进制,但日常生活中使用十进制。数值有正负之分,计算机用一个数的最高位存放符号(0为正,1为负)。
假设机器能处理的位数为8,即字长为1字节,原码能表示数值的范围为(-127~-0 +0~127)共256个。 这是共享文件 d原码、反码、补码.doc 的部分内容 有了数值的表示方法就可以对数进行算术运算,当两数相加时,如果同号则数值相加;如果异号,则要进行减法。并且在进行减法时需要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。
为了解决这些矛盾,人们找到了补码表示法,即数值一律用补码来表示(存储)。机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到。
在补码中用(-128)代替了(-0),所以补码的表示范围为:(-128~0~127)共256个。
注意:(-128)没有相对应的原码和反码,(-128) = (10000000)。
对除符号位外的其余各位逐位取反就产生了反码(对于正数,其反码与原码相同)。反码的取值空间和原码相同且一一对应。
负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来就很方便。
补码的原理可以用钟表来描述:如设标准时间为4点正;一只表已经7点了,为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9格。即7-3和7+9(mod12)等价,因此,把负数用补码表示的mod2操作,可以把减法转化为加法。使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。 这是对d专题注意byte与int的转换.doc 的补充,此文件以后还会修改,争取一看就能明白原理
public class D10415Byte {   
public static void main(String[] args) {   
    byte a=-128;   
    byte b=89;        System.out.println((byte)(a+b));       
    printBinaryInt(a);   
    printBinaryInt(b);   
    printBinaryInt((byte)(a+b));        a=-100;       
    b=(byte)128;//不能直接赋值为128,否则报错,注意byte范围(-128~0~127)   
    System.out.println((byte)(a+b));        printBinaryInt(a);   
    printBinaryInt(b);   
    printBinaryInt((byte)(a+b));    }

    static void printBinaryInt(int i) {   
    System.out.print("" + i + ",/tbinary:/t");   
    for (int j = 31; j >= 0; j--)       
    if (((1 << j) & i) != 0)       
        System.out.print("1");       
    else           
    System.out.print("0");            System.out.println();    }}   
执行结果如下:-39-128,
binary:    1111111111111111111111111000000089,   
binary:    00000000000000000000000001011001-39,   
binary:    1111111111111111111111111101100128-100,   
binary:    11111111111111111111111110011100-128,    binary:    1111111111111111111111111000000028,   
binary:    00000000000000000000000000011100
可加深对 4.9 计算机基础:原码、反码、补码的理解

        以上由管理员赵博伟整理

        本书不少篇章已经超出了技术的范畴,上升到人生发展的高度,这也是副标题叫“人生需要引导” 的一个原因。加入QQ群78928780,每周一个学习安排,多个学习小组等着你,还可分享各种根据聊天记录整理的话题哟。
     《数据库开发这点事》下载地址http://sites.google.com/site/howwe6/db





 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值