CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

java 的无符号整型

楼主evo_vii()2006-03-09 11:07:59 在 Java / J2SE / 基础类 提问

java   是不支持无符号整型    
  在jdk1.5   中   int   i=07010101;   这样写编译器并没有抱错  
  但int   i=08010101;   这样就抱错  
   
  有没有人可以给解释一下  
   
  还有在java中怎么可以把08010101   这样的无符号整型向c#一样写入   new   byte[4]   中 问题点数:20、回复次数:9Top

1 楼ChDw(米)回复于 2006-03-09 11:15:52 得分 5

你搞错了,Java中以0开头表示的是8进制!所以08001这样是错误的  
   
  0x开头才是16进制  
   
   
  你需要的话可以   int   i   =   0x08   <<   24   |   0x01   <<   16   |   0x01   <<   8   |   01Top

2 楼xiaopeipei2004(小裴)回复于 2006-03-09 11:24:01 得分 0

顶,学习一下Top

3 楼evo_vii()回复于 2006-03-09 11:31:51 得分 0

我现在在写一个协议   协议中是这么定义   08010101  
  定长String,   它由一系列的10进制字符组成(ASCII码‘0’---‘9’),右齐左补‘0’(ASCII码48)。  
  08010101   是这个协议中的一个字段   协议中它的定长是4个字节  
  在c#   中可以把   08010101定义为一个无符号整型就可以解决  
  但是在java中要怎么解决哪???Top

4 楼evo_vii()回复于 2006-03-09 11:51:39 得分 0

按照上面说的它是顶长的10进制String   哪他的长度就是8个字节   郁闷了一上午了有没有可以帮忙解决一下Top

5 楼ChDw(米)回复于 2006-03-09 12:06:21 得分 0

搞不明白,你到底是要整数还是字符串?  
   
  如果是字符串,你使用Int做什么?如果是Int那么08这个是错误的,因为8进制中不存在8Top

6 楼ahlon(Ahlon)回复于 2006-03-09 12:14:22 得分 5

0开头的int数值应该是表示的8进制,但是8进制中是没有8的,最高是7,所以.......Top

7 楼treeroot(旗鲁特)回复于 2006-03-09 12:20:35 得分 0

upTop

8 楼qybao(阿宝)回复于 2006-03-09 12:24:56 得分 10

还有在java中怎么可以把08010101   这样的无符号整型向c#一样写入   new   byte[4]   中  
  ----------------------------  
  首先,以0打头的数表示8进制数,8进制数最大数字只能到7(即0-7是有效数字),而08xxx中,8已经不是有效数字了,所以就报错了。  
  像ChDw(米)说的    
  你需要的话可以   int   i   =   0x08   <<   24   |   0x01   <<   16   |   0x01   <<   8   |   01  
  要存在byte中可以这样  
  byte   b[]   =   new   byte[4];  
  b[0]   =   0x08;  
  b[1]   =   0x01;  
  b[2]   =   0x01;  
  b[3]   =   0x01;  
  或  
  int   i   =   0x08   <<   24   |   0x01   <<   16   |   0x01   <<   8   |   01  
  b[0]   =   (i   &   0xff000000)   >>   24;  
  b[1]   =   (i   &   0x00ff0000)   >>   16;  
  b[2]   =   (i   &   0x0000ff00)   >>   8;  
  b[3]   =   (i   &   0x000000ff);  
   
   
  Top

9 楼evo_vii()回复于 2006-03-09 12:41:58 得分 0

暂时我也是这么解决的  
    public   static   byte[]   hexString2byte(String   hexString)   {  
                  if   (hexString   ==   null   ||   hexString.length()   %   2   !=   0)  
                          return   null;  
                  byte[]   result   =   new   byte[hexString.length()   /   2];  
                  for   (int   i   =   0;   i   <   hexString.length();   i   +=   2)  
                          result[i   /   2]   =   (byte)   (Integer.parseInt(hexString.substring(i,  
                                          i   +   2),   10)   &   0xff);  
                  return   result;  
          }  
  但是不知道服务器那边能不能认啊    
  先谢谢大家了   到测试的时候服务器那边不认再向大家请教Top

相关问题

  • 谁知道怎么把无符号整型数组转为无符号整型数据?
  • 怎样在VB中定义一个无符号整型?50分相送。
  • 请教:无符号长整型数据如何输出(100分)
  • 无符号短整型是什么?怎么写?
  • linux下,C++如何定义一个无符号64位整型。谢谢
  • 怎么用java传送7个16进制无符号数?
  • 用ntohs()转换后的是整无符号整型,怎么再把它转换成相应的字符串?
  • 一个关于颜色值转化为无符号整型的问题,好奇怪,请高手帮忙。
  • 怎么把一个日期转换为一个32位的无符号32位整型
  • 结构体中有无符号的整型,怎么转换成char*在网络中传输啊?

关键词

  • 无符号整型
  • hexstring
  • ff
  • byte

得分解答快速导航

  • 帖主:evo_vii
  • ChDw
  • ahlon
  • qybao

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo