TI中文支持网
TI专业的中文技术问题搜集分享网站

请教一下数制转换问题。

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

Jason Wu4:

在DSP中,如果定义的参数为16位的数据,其存储方式按照16位方式存储

表达方式可以为十六进制或者十进制,实际都是同一参数,可以直接参与运算,无需进行其他转换

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

10#:

无论你是执行十六进制还是十进制,或者二进制,对芯片来说,在内部执行都是二进制,所以:

如果你只是进行计算,并不需要去考虑这个转换的问题,你只需要对结果进行处理就行了,比如c=a*b,你把a写成十六进制,而b写成十进制,它们运算时都不需要进行转换,尽管相乘就好,只需要对最终结果c进行处理即可,你可以把c转换成十六进制或者十进制。

如果你是要用到这个参数的十进制格式的每一位进行运算,那么就必须人为地取每一位出来,比如一个数a=xyz,需要单独得到x,y和z,也就是a=100*x+10*y+z.

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

kai Chen13:

回复 Jason Wu4:

那比如说,我的DSP定义的DFunc=0X1300;但是接下来我需要它乘以b;就可以直接写成c=DFunc*b是吗

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

10#:

回复 kai Chen13:

是的,为什么不呢?或者你觉得有什么问题?

要不然你用一个简单的程序测试一下也知道了。

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

Jason Wu4:

回复 kai Chen13:

对的,直接相乘即可,只需注意定义变量的数据类型,防止数据溢出即可,得到的结果均可表示为十六进制或者十进制

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

kai Chen13:

回复 10#:

那我让这个DFunc除以2,然后把结果赋给c,那么c=2434,就这样是吧

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

Jason Wu4:

回复 kai Chen13:

对的,有什么问题么?

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

10#:

回复 kai Chen13:

已经在原理上和操作上都解释得非常清楚了,为什么不直接试一试呢?

使用一个非常简单的程序或者TI的例程都可以,而且这不是只有C2000的芯片是这样,使用任意一颗MCU也没有差别呀。

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

kai Chen13:

回复 Jason Wu4:

没了  谢谢

在DSP里面,一个参数是十六进制:0*xxx,但是我想用这个参数的十进制来进行其他运算,这咋转换啊?

kai Chen13:

回复 10#:

恩恩  谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » 请教一下数制转换问题。
分享到: 更多 (0)