草庐IT

prod_short_desc

全部标签

java - 使用 byte、short 和其他基本类型

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion为什么我不经常看到它们。我只看到它们主要用于网络,其中大小确实很重要。但是,例如,我有一个变量只使用1-10范围内的数字,我不应该使用字节吗?我习惯于使用尽可能小的内存编写C/C++代码,为什么在Java中不是这样?

java - 将int转换为unsigned short java

我用java编写了一个.obj解析器来对iPhone上的3D对象进行建模。我想将数据导出为二进制文件,该文件必须尽可能小。我有很多适合unsignedshort的索引,但它们在java中表示为int。我想在将数据写入文件之前使用ByteBuffer类进行转换。我想我必须在将字节插入ByteBuffer之前对其进行操作,但我不知道该怎么做。如果您能帮助我,在此先感谢您。 最佳答案 在Java中,一个无符号的short可以表示为一个char。只需将int转换为char并在ByteBuffer上使用putChar()。myBuffer.p

java - byte, short, char 是否在 switch 语句中自动提升?

给定以下代码,'a'(即char类型)在switch中自动提升为int类型-case声明?voidtestSwitch(bytex){switch(x){case'a'://1case256://2default://3case1://4}我找不到JavaSE7是否提到了这一点..预先感谢您的澄清。问候,丹尼尔 最佳答案 这是语言规范中提到的内容。参见thissectiononswitchstatements:Givenaswitchstatement,allofthefollowingmustbetrueoracompile-ti

java - 将两个shorts打包成一个int,处理negative和positive

我正在创建一个PackedUnsigned1616类,它在一个int中存储两个无符号短裤,还有一个PackedSigned1616类,它在一个int中存储两个有符号短裤。我已经阅读了按位运算,但我仍然对如何处理有符号和无符号以及大于或小于short范围的值(它们作为两个整数传入)感到困惑。到目前为止,这是我得到的:publicfinalclassPackedUnsigned1616{publicfinalintfield;privatestaticfinalintRIGHT=(2>15;}publicintgetRight(){returnfield&RIGHT;}整个概念让我很困惑,

java - 为什么需要数据类型 byte、char 和 short

我在JVM规范中读到数据类型byte、short和char在内部被视为int。那么,如果我们不能从它们的小尺寸中获益,为什么要使用这些数据类型呢? 最佳答案 部分是为了与C/C++兼容,部分是为了节省内存-在内部,短片存储为短片,但处理为短片整数。newshort[10]占用的内存是newint[10]的一半 关于java-为什么需要数据类型byte、char和short,我们在StackOverflow上找到一个类似的问题: https://stackove

java - 比较两个 Short 对象给出意想不到的结果

我正在执行以下代码得到了一些令人惊讶的结果classTest{publicstaticvoidmain(String[]args){Shorti=122,j=122;if(i==j){System.out.println("true");}else{System.out.println("false");}}}和classTest{publicstaticvoidmain(String[]args){Shorti=1222,j=1222;if(i==j){System.out.println("true");}else{System.out.println("false");}}}当我

java - 按整数值 desc 对 HashMap 进行排序

如何按整数值对hashmap进行排序,我找到的答案之一是hereEvgeniyDorofeev写的,他的回答是这样的HashMapmap=newHashMap();map.put("a",4);map.put("c",6);map.put("b",2);Object[]a=map.entrySet().toArray();Arrays.sort(a,newComparator(){publicintcompare(Objecto1,Objecto2){return((Map.Entry)o2).getValue().compareTo(((Map.Entry)o1).getValue(

java - 将 Byte[] 读取为 unsigned short Java

我需要读取一个16位的字节数组作为unsignedshortnumber,Java不支持unsignedshort类型。那我该怎么做呢??请帮忙!! 最佳答案 假设您有来自非Java源的二进制数据,您必须读取和使用Java中的值:将其读取为(带符号的)short,然后将其转换为int,如下所示:intintVal=shortVal>=0?shortVal:0x10000+shortVal您不能在short中表示unsignedshort的所有值,但在int中可以。 关于java-将Byt

java - Largest Java Short (32767) 加 1 不转负?

最近学习了二元表示正负整数的补码法。然后我尝试使用带有以下短代码的java来查看它的实际效果:inta=2147483647;System.out.println("a:"+a);System.out.println("a+1:"+(a+1));shortb=32767;System.out.println("b:"+b);System.out.println("b+1:"+(b+1));哪些输出:a:2147483647a+1:-2147483648b:32767b+1:32768这让我感到困惑,因为我认为b+1,用二进制表示为011111111111111,会变成100000000

java - 除了处理之外,Short 和 Character 有什么区别?

据我所知:“bytewise”,看起来是一样的(都是2字节长);然而,Character有更多处理(静态.isLetter()方法和其他方法等)。虽然我的问题听起来很愚蠢,但它们是:除非我的第一个假设是错误的,否则为什么会有原始类型char和short因为它们具有相同的“内部长度”,而且无论如何,没有无符号原始类型Java类型?Short是final,如果不是,Character是否可以扩展Short?编辑:已给出答案,但我错了:Java中有一种无符号原始类型,即...char。编辑2:@PatriciaShanahan还提到在算术运算中,char的行为类似于无符号16位整数,就像短。