在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#:
恩恩 谢谢!