A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 328078121 中级黑马   /  2013-8-30 10:56  /  1208 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

将一个字符串转换成字节数组之后,再通过Integer对象转换成二进制码,只有七位,而不是八位?怎么解决只有七位的问题,在开头添加0吗?

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

2 个回复

倒序浏览
        public static void main(String[] args) {
                /*
                 * s共有4个字节,“你”占有两个字节,在GB2312编码表中记录着中文和二进制的关系。
                 * ASCII是美国的编码表,而GB2312就是按照一个中文两个字节的方式编码的。
                 */
                String s="abc你好";
                byte[] bytes=s.getBytes();
                for (int i = 0; i < bytes.length; i++) {
                        System.out.print(bytes[i]+" ");
                        System.out.println(Integer.toBinaryString(bytes[i]));
                }
                /* 打印结果:正数的高位是0,默认省略不显示。
                 * 97 1100001
                 * 98 1100010
                 * 99 1100011
                 * -60 11111111111111111111111111000100
                 * -29 11111111111111111111111111100011
                 * -70 11111111111111111111111110111010
                 * -61 11111111111111111111111111000011
                 */
        }

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
楼主 你的问题如果解决了!



请把您的问题的"未解决"更改为"已解决"!



谢谢合作!


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马