如何以 32 位二进制形式表示 45 度和 26.565 度角?

How to represent 45 degree and 26.565 degree angle in 32 bit binary form?

我正在 xilinx vivado 中为 CORDIC(坐标旋转数字计算机)编写 verilog 代码。为此,我需要 45、26.565 度的 32 位二进制形式的旋转角度。在网上搜索后我得到45度角可以表示为

assign z[00] = 'b00100000000000000000000000000000;

而26.565度角可以表示为

assign z[01] = 'b00010010111001000000010100011101;

谁能给我解释一下它们是如何用二进制形式表示 45 度角和 26.565 度角的?有什么公式吗?

round((45 / 360) * 2 ** 32) 等于 'b00100000000000000000000000000000(正是你的数字)

round((26.565 / 360) * 2 ** 32)等于'b00010010111001000000001010111011(和你的数差不多,相差0.00005度)

公式概率等于(angle / 360) * 2 ** 32