一、易语言如何发送16进制字符串?
版本 2.子程序 _按钮1_被单击.局部变量 A, 文本型A = 到文本 (到十进制 (编辑框1.内容))编辑框2.内容 = 取十六进制文本 (到整数 (A)).版本 2.子程序 到十进制, 整数型.参数 内存地址, 文本型.局部变量 i, 整数型.局部变量 string, 文本型.局部变量 结果, 长整数型计次循环首 (取文本长度 (内存地址), i)string = 取文本中间 (内存地址, i, 1)结果 = 结果 + (寻找文本 (“0123456789ABCDEF”, string, , 真) - 1) × 求次方 (16, 取文本长度 (内存地址) - i).计次循环尾 ()返回 (结果)
二、DES加密后如何转换为16进制字符串?
可以通过下面的方法进行加密,key换成16位的密钥即可。
import java.io.IOException;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class DesUtil {
private final static String DES = "DES";
public static void main(String[] args) throws Exception {
String data = "123 456";
String key = "wang!@#$%";
System.err.println(encrypt(data, key));
System.err.println(decrypt(encrypt(data, key), key));
}
/**
* Description 根据键值进行加密
* @param data
* @param key 加密键byte数组
* @return
* @throws Exception
*/
public static String encrypt(String data, String key) throws Exception {
byte[] bt = encrypt(data.getBytes(), key.getBytes());
String strs = new BASE64Encoder().encode(bt);
return strs;
}
/**
* Description 根据键值进行解密
* @param data
* @param key 加密键byte数组
* @return
* @throws IOException
* @throws Exception
*/
public static String decrypt(String data, String key) throws IOException,
Exception {
if (data == null)
return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] buf = decoder.decodeBuffer(data);
byte[] bt = decrypt(buf,key.getBytes());
return new String(bt);
}
/**
* Description 根据键值进行加密
* @param data
* @param key 加密键byte数组
* @return
* @throws Exception
*/
三、16进制字符串转为字符串什么意思?
Java中byte用二进制表示占用8位,而16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。
根据以上原理,就可以将byte数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte数组了。
四、16进制字符串如何转换为对应的ASCII码?
设x是十六进制数。当0<=x<=9时对应的ASCII码是x+0x30;当0xa<=x<=0xf时对应的ASCII码是x+0x37。
五、如何将16进制字符串转换成10进制?
十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方;在16进制中:a(A)=10b(B)=11c(C)=12d(D)=13e(E)=14f(F)=15所以CE=12*16^1+14*16^0=192+14=206
六、5 java下把16进制字符串转化成byte数组型?
给你如下两个方法,你可以试试: public static byte uniteBytes(byte str0, byte str1) { byte _b0 = Byte.decode("0x" + new String(new byte[]{str0})).byteValue(); _b0 = (byte)(_b0 << 4); byte _b1 = Byte.decode("0x" + new String(new byte[]{str1})).byteValue(); byte ret = (byte)(_b0 ^ _b1); return ret; } public static byte[] HexString2Bytes(String str){ byte[] ret = new byte[str.length()/2]; byte[] tmp = str.getBytes(); for(int i=0; i<str.length()/2; i++){ ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]); } return ret; } demo: String str = "1A543C3265C133D23F416E21" byte[] by = HexString2Bytes(str);
七、16进制转字符串原理?
Java中byte用二进制表示占用8位,而16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16进制字符H和L,并组合起来得到byte转换到16进制字符串的结果new String(H) + new String(L)。即byte用十六进制表示只占2位。 同理,相反的转换也是将两个16进制字符转换成一个byte,原理同上。
根据以上原理,就可以将byte数组转换为16进制字符串了,当然也可以将16进制字符串转换为byte数组了。
八、Java字符串转16进制 - 如何将字符串转换为16进制表示
Java字符串转16进制
在Java编程中,有时需要将字符串表示为16进制数。这种转换可以在很多应用中发挥作用,比如密码加密、网络传输等。在本文中,我们将学习如何使用Java来实现字符串转16进制的功能。
使用Java的内置函数
在Java中,提供了String类的getBytes()方法来获取字符串的字节数组表示。然后,我们可以使用Java的Integer类提供的静态方法toHexString()将字节数组转换为16进制字符串。下面是一个示例代码:
String str = "Hello World";
byte[] byteArray = str.getBytes();
StringBuilder hexStr = new StringBuilder();
for (byte b : byteArray) {
String hex = Integer.toHexString(b & 0xff);
if (hex.length() == 1) {
hexStr.append('0');
}
hexStr.append(hex);
}
System.out.println(hexStr.toString());
在上面的代码中,我们首先使用getBytes()方法将字符串转换为字节数组。然后,通过循环遍历字节数组的每一个字节,并将其转换为16进制表示的字符串。如果转换后的字符串只有一位,我们在前面补充一个0。最后,我们通过使用StringBuilder来构建最终的16进制字符串。
使用第三方库
另一种方法是使用一些第三方库,比如Apache Commons的Hex类。Hex类提供了一组静态方法,可以方便地将字节数组转换为16进制字符串,示例如下:
import org.apache.commons.codec.binary.Hex;
String str = "Hello World";
byte[] byteArray = str.getBytes();
String hexStr = Hex.encodeHexString(byteArray);
System.out.println(hexStr);
在上面的代码中,我们直接使用了Hex类提供的encodeHexString()方法将字节数组转换为16进制字符串。这种方法更加简洁,并且避免了手动处理字节数组的细节。
总结
本文介绍了两种在Java中将字符串转换为16进制表示的方法。使用Java的内置函数需要手动处理字节数组,而使用第三方库可以更加简洁方便地完成转换。根据实际情况选择合适的方法进行字符串转16进制,可以帮助我们在编程中更好地应用这一功能。
谢谢您阅读本文,希望对您有所帮助!
九、python16进制转字符串?
你的16进制的串“C7EBCEF0BEC6BAF3BCDDB3B5”是gbk编码的,通过以下方法可以转为字符串。>>> s = "C7 EB CE F0 BE C6 BA F3 BC DD B3 B5">>> s = s.replace(" ", "")>>> print s.decode("hex")请勿酒后驾车
十、c++ 字符串转换16进制?
/****************************************************************************
函数名称: str_to_hex
函数功能: 字符串转换为十六进制
输入参数: string 字符串 cbuf 十六进制 len 字符串的长度。
输出参数: 无
*****************************************************************************/
static int str_to_hex(char *string, unsigned char *cbuf, int len)
{
BYTE high, low;
int idx, ii=0;
for (idx=0; idx<len; idx+=2)
{
high = string[idx];
low = string[idx+1];
if(high>='0' && high<='9')
high = high-'0';
else if(high>='A' && high<='F')
high = high - 'A' + 10;
else if(high>='a' && high<='f')
high = high - 'a' + 10;
else
return -1;
if(low>='0' && low<='9')
low = low-'0';
else if(low>='A' && low<='F')
low = low - 'A' + 10;
else if(low>='a' && low<='f')
low = low - 'a' + 10;
else
return -1;
cbuf[ii++] = high<<4 | low;
}
return 0;
}
/****************************************************************************
函数名称: hex_to_str
函数功能: 十六进制转字符串
输入参数: ptr 字符串 buf 十六进制 len 十六进制字符串的长度。
输出参数: 无
*****************************************************************************/
static void hex_to_str(char *ptr,unsigned char *buf,int len)
{
for(int i = 0; i < len; i++)
{
sprintf(ptr, "%02x",buf[i]);
ptr += 2;
}
}
- 相关评论
- 我要评论
-