@@ -1643,10 +1643,11 @@ static inline char* xjb16(uint16_t bits, char* buf) {
16431643 uint32_t first_sig_pos = (FIXED_MIN <= e10 && e10 <= -1 ) ? 1 - e10 : 0 ;
16441644 uint32_t dot_pos = (0 <= e10 && e10 <= FIXED_MAX ) ? 1 + e10 : 1 ;
16451645 uint32_t move_pos = dot_pos + ((0 <= e10 || e10 < FIXED_MIN ));
1646- uint32_t exp_pos = (FIXED_MIN <= e10 && e10 <= -1 )
1647- ? dec_sig_len
1648- : (0 <= e10 && e10 <= FIXED_MAX ? (e10 + 3 > dec_sig_len + 1 ? e10 + 3 : dec_sig_len + 1 )
1649- : (dec_sig_len + 1 - (dec_sig_len == 1 )));
1646+ uint32_t exp_pos =
1647+ (FIXED_MIN <= e10 && e10 <= -1 )
1648+ ? dec_sig_len
1649+ : (0 <= e10 && e10 <= FIXED_MAX ? ((uint32_t )(e10 + 3 ) > dec_sig_len + 1 ? e10 + 3 : dec_sig_len + 1 )
1650+ : (dec_sig_len + 1 - (dec_sig_len == 1 )));
16501651 char * buf_origin = buf;
16511652 buf += first_sig_pos;
16521653 ascii = D5 ? ascii : (ascii >> 8 );
@@ -1674,7 +1675,7 @@ static inline char* xjb16(uint16_t bits, char* buf) {
16741675 if (FIXED_MIN <= e10 && e10 <= FIXED_MAX )
16751676 exp_result = 0 ;
16761677 uint32_t exp_len = (FIXED_MIN <= e10 && e10 <= FIXED_MAX ) ? 0 : 4 ;
1677- memcpy (buf, &exp_result, 8 );
1678+ memcpy (buf, &exp_result, 4 );
16781679 return buf + exp_len;
16791680}
16801681static inline char * xjb80 (uint16_t v_hi16, uint64_t v_lo64, char * buf) {
@@ -1686,9 +1687,9 @@ static inline char* xjb80(uint16_t v_hi16, uint64_t v_lo64, char* buf) {
16861687 buf += v_hi16 >> 15 ;
16871688 u64 sig = v_lo64;
16881689 u64 exp = v_hi16 & ((1 << 15 ) - 1 );
1689- u64 sig_bin_hi64 = 1 ;// sig_bin has 65 bit;
1690+ u64 sig_bin_hi64 = 1 ; // sig_bin has 65 bit;
16901691 u64 sig_bin_lo64 = sig;
1691- // u64 sig_bin = sig | ((u128)1 << 64); // need u128
1692+ // u64 sig_bin = sig | ((u128)1 << 64); // need u128
16921693 i64 exp_bin = (i64 )exp - ((1 << 14 ) - 1 ) - 64 ;
16931694 if (exp == 0 ) [[unlikely]] {
16941695 if (sig == 0 )
@@ -1698,12 +1699,10 @@ static inline char* xjb80(uint16_t v_hi16, uint64_t v_lo64, char* buf) {
16981699 }
16991700 if (exp == 32767 ) [[unlikely]]
17001701 return (char *)memcpy (buf, sig ? " nan" : " inf" , 4 ) + 3 ;
1701-
1702- i64 k = 0 ;// floor(exp_bin*log10(2))
1703- // get_pow10 : 10**(-k-1)
1704- // compute m_up and up_down, one;
1705-
17061702
1703+ i64 k = 0 ; // floor(exp_bin*log10(2))
1704+ // get_pow10 : 10**(-k-1)
1705+ // compute m_up and up_down, one;
17071706
17081707 return buf;
17091708}
@@ -1712,10 +1711,10 @@ static inline char* xjb128(uint64_t v_hi64, uint64_t v_lo64, char* buf) {
17121711 // v = {v_hi64, v_lo64} ; v_hi64 is the highest 64bits, v_lo64 is the lowest 64bits
17131712
17141713 // 128 bit = 1 + 15 + 112; sign + exp + sig
1715-
1714+
17161715 return buf;
17171716}
1718- static inline char * xjb256 (uint64_t * v,char * buf){
1717+ static inline char * xjb256 (uint64_t * v, char * buf) {
17191718 // todo
17201719 // v = {v[0], v[1], v[2], v[3]} ; v[0] is the highest 64bits, v[3] is the lowest 64bits
17211720
@@ -1746,4 +1745,5 @@ char* xjb_ftoa(uint64_t v_hi64, uint64_t v_lo64, char* buf) {
17461745}
17471746char * xjb_ftoa (uint64_t * v, char * buf) {
17481747 return xjb::xjb256 (v, buf);
1749- }
1748+ }
1749+
0 commit comments