📄 mulsi3.c
字号:
typedef union { struct { unsigned int msw; unsigned int lsw;} s; long v;} u;long __mulsi3(u a, u b){ int s; long pp1; long pp2; long r; if (a.s.msw == 0 && b.s.msw == 0) { return (long)a.s.lsw * b.s.lsw; } s = 0; if (a.v < 0) { s = 1; a.v = - a.v; } if (b.v < 0) { s = 1-s; b.v = - b.v; } pp1 = (long)a.s.lsw * b.s.lsw ; pp2 = (long)a.s.lsw * b.s.msw + (long)a.s.msw * b.s.lsw; pp1 += pp2 << 16; if (s) { pp1 = -pp1; } return pp1;}long __mulpsi3(long a, long b){ return a*b;}short __mulhi3(short a, short b){ int r; r = 0; while (a) { if (a & 1) { r += b; } b<<=1; a>>=1; } return r;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -