用户登录
用户注册

分享至

字符转16进制软件 有没有字符转换成16进制的软件

  • 作者: _7955537
  • 来源: 51数据库
  • 2020-04-16

具体的软件我不知道

先asc 之后再转成十六进制

小写字母的ASC码值(10进制)

a 97

b 98

c 99

... ...

m 109

109/16=6...13(即商是6,余数是13,下同)

16进制中把10、11、12、13、14、15用字母a、b、c、d、e、f来表示。所以13就是字母d,即(109)10=(6d)16

然后在把109转换成16进制,即6D

所以小写字母"c"的十六进制ASC11码值是63

99/16=6...3(即商是6,余数是3)

这个程序是如何实现字符串转化为16进制串的

intHex2Stream(char*hex,unsignedchar*stream){

inti,len,t;

len=(int)strlen(hex);

if(0!=len%2){//十六进制串的长度必须是偶数

return-1;

}

for(i=0;i<len;i+=2){

//将hex[i]和hex[i+1]以16进制格式转换到t中

sscanf(hex+i,"%02x",&t);

//将转换得到的数写入字符串stream中

stream[i/2]=t;//i是偶数,i+1是奇数,i/2==(i+1)/2

}

stream[[i]='\0';//补充一句,方便于对字符串stream的进一步操作

returnlen/2;//返回的是16进制数的位数

}

非常感谢!我还想问下为什么十六进制串的长度必须是偶数?而且一开始时hex应该是字符串吧,不应该在一开始时就要求是偶数?另外 i 的值每次加2,好像hex[i]中i为奇数时没存进去?

1、一个字节正好装入2位16进制数,反过来说,每两个16进制位恰好是一个字节,所以要求被转换的16进制串的长度是偶数。

2、i是偶数,i + 1是奇数,每次转换的都是两个字符,注意,转换的格式是"%02x",就是说每次读取2个字符,i 和 i + 1 都被转换了。

用什么软件把16进制转换成10进制

自己复制到EXCEL里头,

百度了个答案:整个表格换成16进制吗?好像不行。

函数DEC2HEX可以将一个数字变成16进制,但是这个16进制数不能直接运算。

HEX2DEC再转成10进制。

excel里面的16进制数不是真正的数,仅仅是字符串。所以你需要先把它转换成10进制才能计算。HEX2DEC是把16进制变成10进制的,DEC2HEX则反过来。

怎么将16进制转换成ASCII码?

每个数字+0x30,每个字母+0x37就成了。比如开头五个fad1e:

f的16进制是1111,加0x37即1111+00110111=01000110=0x46;

a的16进制是1010,加0x37即1010+00110111=01000001=0x41;

d的16进制是1101,加0x37即1101+00110111=01000100=0x44;

1的16进制是0001,加0x37即0001+00110111=00110001=0x31;

e的16进制是1110,加0x37即1110+00110111=01000101=0x45。

所以16进制数fad1e的ASCII码就是:46 41 44 31 45。

其他的你就照猫画虎吧……

求c语言将十进制数转换为16进制的函数

基本全部情况都考虑了,所以有点长,请耐心看完。代码可以直接拷贝试验,都已调试过,保证正确!

有3种方式实现,其中两种是使用系统函数,另一种是直接自己编写。

使用系统函数实现要加入#include <stdlib.h>,自己编写则不需要这个头文件。

下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。

利用系统函数有

1. char * itoa ( int value, char * str, int base );value是要转化的数字,str是转化后的字符串存储的位置,base是进制数(但是这个函数不是标准C函数,有些编译器是不支持的!)。所以代码可以为:

charbuffer[33];//用于存放转换好的十六进制字符串,可根据需要定义长度

char*inttohex(intaa)

{

itoa(aa,buffer,16);

return(buffer);

}

2.sprintf(str,"%x",value);str是转化存储的位置,%x表示十六进制格式,value是要转化的数字。所以代码可以为:

charbuffer[33];//用于存放转换好的十六进制字符串,可根据需要定义长度

char*inttohex(intaa)

{

sprintf(buffer,"%x",aa);

return(buffer);

}

3. 自己编写

如果参数只要两位数的整数,那么很简单。代码如下:

charbuffer[3];//用于存放转换好的十六进制字符串。由于只要支持2位整数,所以长度3即可

char*inttohex(intaa)

{

if(aa/16<10)//计算十位,并转换成字符

buffer[0]=aa/16+'0';

else

buffer[0]=aa/16-10+'A';

if(aa%16<10)//计算个位,并转换成字符

buffer[1]=aa%16+'0';

else

buffer[1]=aa%16-10+'A';

buffer[2]='\0';//字符串结束标志

return(buffer);

}

如果参数是任意整数,由于计算方法是每次都除以16和对16取余数,余数以倒序的顺序排列就是结果,所以最佳方法是用递归函数(当然循环也可以,但需要最后再进行倒序)。递归代码如下:

charbuffer[33];//用于存放转换好的十六进制字符串,可根据需要定义长度

char*inttohex(intaa)

{

staticinti=0;

if(aa<16)//递归结束条件

{

if(aa<10)//当前数转换成字符放入字符串

buffer[i]=aa+'0';

else

buffer[i]=aa-10+'A';

buffer[i+1]='\0';//字符串结束标志

}

else

{

inttohex(aa/16);//递归调用

i++;//字符串索引+1

aa%=16;//计算当前值

if(aa<10)//当前数转换成字符放入字符串

buffer[i]=aa+'0';

else

buffer[i]=aa-10+'A';

}

return(buffer);

}

最后测试代码如下(以sprintf为例,其余只要替换inttohex函数中的代码内容即可):

#include<stdio.h>

#include<stdlib.h>

charbuffer[33];//用于存放转换好的十六进制字符串,可根据需要定义长度

char*inttohex(intaa)

{

sprintf(buffer,"%x",aa);

return(buffer);

}

intmain()

{

intnum;

char*hex_str;

printf("Enteranumber:");

scanf("%d",&num);

hex_str=inttohex(num);

printf("Hexadecimalnumber:%sH\n",hex_str);

return0;

}

可以直接拷贝试验,都已调试过,保证正确!

求VB将中文字符转换成相应的16进制编码的源代码

这个函数,可以用来生成任意字符的16进制码,Unicode和ANSI都支持:

FunctionGetHex(ByValStr1AsString,IsANSIAsBoolean)AsString

Dimb1()AsByte

IfIsANSIThenb1=StrConv(Str1,vbFromUnicode)Elseb1=Str1

Dims1AsLong,n1AsLong,l1AsLong

l1=LBound(b1)

n1=UBound(b1)-l1+1

GetHex=Space(n1*2)

Fors1=1Ton1

Mid(GetHex,s1+s1-1,2)=Replace(Format(Hex(b1(s1+l1-1)),"@@"),"","0")

Next

EndFunction

使用:

Debug.Print "ANSI码:";GetHex("我们",True)

Debug.Print "Unicode码:";GetHex("我们",False)

显示结果:

ANSI码:CED2C3C7

Unicode码:1162EC4E

上面的是正确结果。你给的“ANSI是 89E43F,unicode是 11623F00”是错的,你随便找一个16进制编辑器验证下吧。两个汉字的ANSI码怎么也都是4字节的不可能是3字节的,Unicode汉字中也不会有“00”

有什么软件能把英文或者数字转化成16进制的数,或者反之

推荐:UltraEdit

因为无论是英文字符还是数字在计算机的内存中都是用二进制~也几是0和1来表示的(英文字符和ASCII码表有联系)

而4位二进制数就是一个十六进制数(如果楼主上过高中,学过乘法原理应该能想明白)

如果不明白我来讲

例如:0101这个四位二进制数

他的每一位都是由0或1来表示的,如果有4位它就可以用来表示(2^4=16)个数~正好对应这十六进制中的0-9,A-E十六个数

刚刚看了一下,终于知道楼主问的是什么了~

看在我写了这么多的基础上~就把分给我吧

强烈推荐UltraEdit

参考资料:自己的思考+记忆

16进制编辑器怎么转换成中文

这命题挺蒙人的.

你如果想汉化软件可以找出资源文件来操作,或着是程序中显示字符所在位置,

可以考虑去各大汉化基地求教下

转载请注明出处51数据库 » 字符转16进制软件 有没有字符转换成16进制的软件

软件
前端设计
程序设计
Java相关