双字节十六进制如何转换成十进制?

作者&投稿:邱侄 (若有异议请与网页底部的电邮联系)
如何用C#把十六进制转换成十进制的代码?~

publicstringDtoX(intd)
{
stringx="";
if(d<16)
{
x=chang(d);
}
else
{
intc;
ints=0;
intn=d;
inttemp=d;
while(n>=16)
{
s++;
n=n/16;
}
string[]m=newstring[s];
inti=0;
do
{
c=d/16;
m[i++]=chang(d%16);//判断是否大于10,如果大于10,则转换为A~F的格式
d=c;
}while(c>=16);
x=chang(d);
for(intj=m.Length-1;j>=0;j--)
{
x+=m[j];
}
}
returnx;
}
//判断是否为10~15之间的数,如果是则进行转换
publicstringchang(intd)
{
stringx="";
switch(d)
{
case10:
x="A";
break;
case11:
x="B";
break;
case12:
x="C";
break;
case13:
x="D";
break;
case14:
x="E";
break;
case15:
x="F";
break;
default:
x=d.ToString();
break;
}
returnx;
}

你好 双字节16进制 转换为10进制压缩BCD吗 占用2位半字节,因为FFFF=65535,你说的5字节应该是每位1字节,直接供显示用。我给你贴个汇编吧,转换后还得拆分


HB2 功能:双字节十六进制整数转换成双字节BCD码整数
入口条件:待转换的双字节十六进制整数在R6、R7中。
出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
影响资源:PSW、A、R2~R7 堆栈需求: 2字节
HB2: CLR A ;BCD码初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;转换双字节十六进制整数
HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2,HB3 ;处理完16bit
RET

双字节16进制 转换为10进制压缩BCD,占用2位半字节,因为FFFF=65535,5字节应该是每位1字节,直接供显示用。

HB2 功能:双字节十六进制整数转换成双字节BCD码整数
入口条件:待转换的双字节十六进制整数在R6、R7中。
出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
影响资源:PSW、A、R2~R7 堆栈需求: 2字节
HB2: CLR A ;BCD码初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;转换双字节十六进制整数
HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2,HB3 ;处理完16bit
RET

51 单片机汇编:

BIN2BCD: ;二转十进制子程序
; R2 R3 → R4 R5 R6
;二进制 → 十万万 千百 十个
CLR A
MOV R4, A
MOV R5, A
MOV R6, A
MOV R7, #16
BD2:
MOV A, R3
RLC A
MOV R3, A
MOV A, R2
RLC A
MOV R2, A ;R2 R3左移一位, 移到Cy
;-----------------
MOV A, R6
ADDC A, R6 ;加入到R4 R5 R6
DA A
MOV R6, A
MOV A, R5
ADDC A, R5
DA A
MOV R5, A
MOV A, R4
ADDC A, R4
MOV R4, A
DJNZ R7, BD2
RET

;HB2 功能:双字节十六进制整数转换成双字节BCD码整数
;入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;影响资源:PSW、A、R2~R7 堆栈需求: 2字节
HB2: CLR A ;BCD码初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;转换双字节十六进制整数
HB3: MOV A,R7 ;从高端移出待转换数的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;BCD码带进位自身相加,相当于乘2
ADDC A,R5
DA A ;十进制调整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;双字节十六进制数的万位数不超过6,不用调整
DJNZ R2,HB3 ;处理完16bit
RET


把十六进制字符串转换成字节型
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 十六进制字符串转换为字节数组 { public class HexstringtoByte { public static byte[] decodeHex(string hex){ char[] chars = hex.ToCharArray();for (int i = 0; i < chars.Length; i++){ Con...

如何将字节串转换为十六进制字符串
\/\/\/ \/\/\/ 字符串转16进制字节数组 \/\/\/ \/\/\/ \/\/\/ <returns><\/returns> private static byte[] strToToHexByte(string hexString){ hexString = hexString.Replace(" ", "");if ((hexString.Length % 2) != 0)hexString += " ";byte[] returnBytes = new byte[hexString.Length \/ ...

...将一个双字节的16进制数转换为十进制,转换后的数只保留万千_百度知 ...
已知:R2 R3 R4 中是 BCD 码,其中R2中是万位,R3中是千、百位,R4中是十、个位。结果:R2 R3 中是 BCD 码,其中R2中是万、千位,R3中是百位、十位。子程序如下:MOV A, R4 ;R4原有十、个位数 SWAP A ANL A, #0FH ;截取十 MOV B, A ;保存一下 ;MOV A, R3 ...

易语言如何转换16进制?
版本 2 .子程序 转换Unicode转Ansi, 文本型, 公开, 将Unicode码转换为Ansi码 (返回转换后的文本).参数 Unicode, 字节集, , 欲转换的Unicode字节集 .局部变量 局部_计数, 整数型 .局部变量 局部_结果数据, 字节集 .局部变量 局部_结果文本, 文本型 局部_计数 = 取字节集长度 (Unicode) ÷ 2...

怎么把十六进制转化为八进制
八进制与十六进制之间的转换有两种方法:第一种:他们之间的转换可以先转成二进制然后再相互转换。第二种:他们之间的转换可以先转成十进制然后再相互转换。例如一个十六进制数053977,将其转换成二进制001 010 011 100 101 110 111,再将该二进制转换为八进制,可得八进制数为1234567。

1KB转换为十六进制为多少
1KB转换为十六进制为400。1KB代表十进制为1024,十进制1024再转换为十六进制为400。转换方法:计算方法就是就该十进制数据除以16取余数,直到商为0为止。然后,从最后一个余数读到第一个余数,把他们合一块就是转化后的十六进制数据。

怎么把一个十进制数转换成4字节的十六进制数
将这个数除以十六,得到商和余数,余数填写为十六进制的最右边一位(余数为0-9就填0-9,余数为10-15分别填A-F);再以商除以十六,余数为十六进制的右边第二位;如此反复,直至商小于十六,这时商就是十六进制数最左边一位数。

求16进制转10进制;BYTE的算法
十六进制转十进制,是把各个数字乘以它们的计数单位来算的,根本用不着按字节来算,例如:十六进制下的9A,这里的A相当于10,而这里的9实际上是九个16,也就是16乘以9,得144,加10,就是154,而不是-102。

一个字节可以用多少位的十六进制表示?
一个字节占8位,16进制一个符号占4位,所以一个字节可以用两个16进制符号表示,比如35h。最常用的字节是八位的字节,即它包含八位的二进制数。十六进制一般用数字0到9和字母A到F(或a~f)表示,其中:A~F表示10~15,这些称作十六进制数字。十六进制数转换成二进制数:把每一个十六进制数转换成4...

抓包过来的十六进制字节数组如何转化? 求分析
如果网络类型是pppoe的话,那么接下来的八个字节是pppoe的头部,在接下来的20个字节是ip头部,再接下来是tcp头部---一层一层下来最后是数据,像mac地址本身就是16进制的就不需要转换了,可以直接读出来比如7e 16 e8 81 10 12 ,ip的话需要先转换成2进制后再转换成十进制。。。

固镇县19176805839: 十六进制转十进制方法是什么? -
季群诺美: 十六进制转换成十进制的具体算法是: 1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去.2、明白ABCDEF表示的二进...

固镇县19176805839: 将两个字节的byte 16进制数 转换成一个int型的10进制数 -
季群诺美: 第一个数乘上 0x100H(相当于左移 8位),然后再加上第二个数就行了.

固镇县19176805839: 十六进制数如何转换成十进制? -
季群诺美: 16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方… 所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方. 进制转换表: 例:2AF5换...

固镇县19176805839: 如何将高低八位的十六进制数转换成十进制数????C51编程. -
季群诺美: 看明白你的意思了,双字节二进制数转换十进制数,这有个专门的算法的,带进位位左移16次,每移位一次执行一次乘2+C操作,形成三字节的压缩BCD

固镇县19176805839: c/c++取出2个字节16进制数组转换10进制 -
季群诺美: 先求出需要转换的个数,然后用for循环用CString类的Mid()函数取出需要转换的2个字节,强制转换为char类,然后用sscanf()函数读出16进制的,当然还有strtol()函数可以用,int len=a.GetLength()/2;int nValude = 0;for(int i=0;i<len;i++){ sscanf((char *)a.Mid(i*2,2),"%x",&nValude); char[i]=(char) nValude; //char[i]=(char)strtol((char *)a.Mid(i*2,2),NULL,16);}

固镇县19176805839: 如何将一个16进制字符串转化成10进制字符串 -
季群诺美: 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方; 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)=13 e(E)=14 f(F)=15 所以CE=12*16^1+14*16^0=192+14=206

固镇县19176805839: 16进制怎么转10进制? -
季群诺美: 一、例子 216是16进制,转10进制: =2*16^2+1*16^1+6*16^0 =512+16+6 =536 二、常识 十六进制转换有16进制每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F16个大小不同的数,即逢16进1,其中用A,B,C,...

固镇县19176805839: 十六进制怎样转换成十进制? -
季群诺美: 16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15.字母不区分大小写. 十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方…… 所以...

固镇县19176805839: 两个字节的十六进制数转为十进制数分别存放的汇编程序 -
季群诺美: data segment x db 2 dup(?) mess1 db 0dh,0ah,'decimal=$' mess2 db 0dh,0ah,'HEX=$'data endscode segment assume cs:code,ds:datastart: mov...

固镇县19176805839: 如何将16进制文本转换成10进制 -
季群诺美: 16进制转10进制: 像10进制数一样的说,把16进制数看成有个位数,十位数,百位数…… 将“个位数”乘上16的0次方(*16^0), 将“十位数”乘上16的1次方(*16^1), 将“百位数”乘上16的2次方(*16^2)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网