Tag: 字节

将java.net.InetAddress转换为long

我想转换一个java.net.InetAddress ,我与签名/未签名的问题进行斗争。 这样的痛苦。 我在Java中读取从短转换为字节和反向转换 为什么字节b =(字节)0xFF等于整数-1? 结果得出: final byte [] pumpeIPAddressRaw = java.net.InetAddress.getByName (pumpeIPAddressName).getAddress (); final long pumpeIPAddress = ((pumpeIPAddressRaw [0] & 0xFF) << (3*8)) + ((pumpeIPAddressRaw [1] & 0xFF) << (2*8)) + ((pumpeIPAddressRaw [2] & 0xFF) << (1*8)) + (pumpeIPAddressRaw [3] & 0xFF); android.util.Log.i ( Application.TAG, "LOG00120: Setzte Pumpen Addresse : " + pumpeIPAddress […]

将任意大小的byte 转换为BigInteger 然后安全地转换回完全相同的byte ,任何线索?

我认为完全转换为BigInteger []在我的情况下是最佳的。 有没有人用Java编写或发现这个并愿意分享? 所以想象我有任意大小byte[] = {0xff,0x3e,0x12,0x45,0x1d,0x11,0x2a,0x80,0x81,0x45,0x1d,0x11,0x2a,0x80,0x81}如何将其转换为BigInteger的数组然后能够安全地恢复它原来的字节数组? ty提前。

将byte 编码为String

Heyho, 我想将字节数据(可以是任何东西)转换为String。 我的问题是,用UTF-8编码字节数据是否“安全”,例如: String s1 = new String(data, “UTF-8”); 或者使用base64: String s2 = Base64.encodeToString(data, false); //migbase64 我只是担心使用第一种方法会产生负面影响。 我的意思是两个变体都可以工作,但是s1可以包含UTF-8字符集的任何字符, s2只使用“可读”字符。 我只是不确定它是否真的需要使用base64。 基本上我只需要创建一个String,通过网络发送它并再次接收它。 (在我的情况下没有别的办法:/) 问题只是关于消极的副作用 ,而不是如果可能的话!

1l为long,1f为float,1d为double,字节怎么样?

1l为long,1f为float,1d为double,字节怎么样? long l = 1l; float f = 1f; double d = 1d; // byte b = 1?; byte的等价物是什么? 它存在吗?

Java二进制文字 – 字节值-128

由于SE 7 Java允许将值指定为二进制文字。 文档告诉我’byte’是一种可以保存8位信息的类型,值为-128到127。 现在我不知道为什么,但我不能定义8位但只有7如果我尝试将二进制文字分配给Java中的一个字节,如下所示: byte b = 0b000_0000; //solves to the value 0 byte b1 = 0b000_0001; //solves to the value 1 byte b3 = 0b000_0010; //solves to the value 2 byte b4 = 0b000_0011; //solves to the value 3 依此类推,直到我们使用这7位获得最后几种可能性: byte b5 = 0b011_1111; //solves to the value 63 byte b6 = 0b111_1111; […]

C#和Java中的hex到字节数组给出了不同的结果

首先,对于长篇文章感到抱歉,我想包括我的所有想法,以便你们更容易找到我的代码有什么问题。 我想将一个Hex字符串从C#应用程序传输到Java应用程序。 但是,当我在两种语言中将相同的hex值转换为字节数组时,输出是不同的。 例如,相同的hex值给出 [101, 247, 11, 173, 46, 74, 56, 137, 185, 38, 40, 191, 204, 104, 83, 154] 在C#和 [101, -9, 11, -83, 46, 74, 56, -119, -71, 38, 40, -65, -52, 104, 83, -102] 在Java中 以下是我在C#中使用的方法: public static string ByteArrayToHexString(byte[] byteArray) { return BitConverter.ToString(byteArray).Replace(“-“,””); //To convert the whole array } public static […]

Android:在android中的Web视图中显示pdf从服务接收的字节

我收到的数据字节就像 JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nNVZyY7jNhC991foHCBOVXERBQQBJFu+D9BAfiALkEOAzGV+f15Ra2shqaQz6IFhWzJp8tX+WKIbV19e/qmo+pFw6VnwWTf6+fn36tcfqr/joL4+//nSvb44fwtVze7mq9ffqp+eXDFVr3/8TDy+hAxZcuSpxl3AXYOrFvcdrpju+H7gyuG7pydmeHL4I7OwwZdlvdHRhv0vr3+99K8vnw5BkL3JCYjpdSfPgMGBG2zm5uVbAGhx4fHucH/H+5HazEMlTdlmQG655ycTWdGBTli1AdXgApqYJZ7gbH8Xs/mfHSCKaqUVj18zuvGBb+4S3BA3rqORsOU5NBjTMa/n446SYGoqNZSEuH0nDZaGgegprW4hHcb9BGMGd5fBjIPnXNOQC/i8oKG30OgOGMvdBGg9xy+zyOssmDU5zho0Ngna1qVmlQ7msTMwEpgp6qoWw608YMhRmwIDcwcgfQyVa1o0HpmiLAZr3gf/DE8hDNuNEHrpkxuLLTWf5pLFdyAb5Fz50Grr5IYkOUnlqZZNLeIautUZ1NNrcLqV9xtYCKrrY9JSCZroeNFeuHvgOzMb0cuH8SSYC3uzSYKvm5stA7/Kt/dSUYAtqBMeh7yGeBKcz3nDBK2VbgfwLi3KFsIXvwd5cFBjQh8AltwUn6XmnHwkINQ6OGQnD9XKNQ1t/50EZ93NXAMXDdBCEWOl3moluZ0p9I2YA5+DIZILMpfiP43wC6o1m1WmmCDWYiy9MVgDCXqMJGjKWCiHYlaN/5Re556JZMOZTCkl2KbZ0Y67AoOYJqZpJHLjYvLuBqgH4xSr+izMfob+glI6ior7UaAktLrOVvW3MZewkqb7spiz3mWJ2BX30CKhxU+reBcrsxk4j8RAiGOaaHfzVo6hm8xkrcQZOJxJkhTd2V31/yjOYE2pM5TGP7hz 这个字节与pdf有关。 和String无法存储这么多数据。 所以我使用stringbuffer来存储它。 但是stringbuffer也无法存储。 所以如何存储这些收到的数据。 如何转换此字节并在Web视图中显示。 更新: 我使用以下代码。 byte[] decodedString = Base64.decode(ByteCode.toString()); wv.loadData(decodedString.toString(), “application/pdf”, “utf-8”); 其中ByteCode是一个类型StringBuffer,用于保存服务的响应字节码。

为什么java没有字节类型后缀?

所以java的文字后缀为long类型:(123L),双类型后缀(43.21D),浮点后缀(1.234F)。 那么……为什么没有字节类型后缀? 例如,在编写一些测试代码时,必须在将它们用作函数参数时转换所有字节。 ByteBuffer b = ByteBuffer.allocate(100); b.put((byte)3); // super annoying b.put(3b); // if only 很明显,使用B或b是行不通的,因为它会与以hex或八进制(一种关键语言特征)指定字节的能力相冲突。 但是其他一些字母,比如Z z? 或Y y(对于bYte)?

在java中从boolean转换为byte

我需要将字节值设置为方法参数。 我有布尔变量isGenerated ,它决定了在这个方法中执行的逻辑。 但我可以直接传递boolean作为字节参数这是不允许的,不能在java中强制转换。 所以我现在的解决方案看起来像这样: myObj.setIsVisible(isGenerated ? (byte)1 : (byte)0); 但对我来说这似乎很奇怪。 也许存在一些更好的解决方案吗?

Oracle和Eclipse编译器生成的java字节码的差异

我们的项目执行一些Java字节码检测。 我们偶然发现了一些奇怪的行为。 假设以下代码段: public void a() { new Integer(2); } Oracle的javac将上面的代码编译成以下字节码: 0: new #2; //class java/lang/Integer 3: dup 4: iconst_2 5: invokespecial #3; //Method java/lang/Integer.””:(I)V 8: pop 9: return 和Eclipse的编译器进入: 0: new #15; //class java/lang/Integer 3: iconst_2 4: invokespecial #17; //Method java/lang/Integer.””:(I)V 7: return 如您所见,Oracle编译器在“new”之后生成“dup”,而Eclipse则不然。 在这个用例中完全正确,因为根本不使用新创建的Integer实例,因此不需要“dup”。 我的问题是: 是否对不同编译器之间的差异有一些概述? 文章/博文? 我可以安全地得出结论,如果“new”和“invokespecial”之间没有“dup”,那么在初始化之后不会使用对象吗?