int bits[4];
).bits[0]
, bits[1]
, и bits[2]
содержат младшие, средние и старшие 32 бита 96-разрядного целого числа соответственно.bits[3]
содержит коэффициент масштабирования и знак, и состоит из следующих частей:typedef struct {
unsigned long long bits[7];
unsigned int exp;
} big_decimal;
int s21_mul(s21_decimal value_1, s21_decimal value_2, s21_decimal *result)
{
s21_decimal a = value_1;
s21_decimal b = value_2;
s21_decimal c = {{0}};
int len1,len2 = 3;
const int BASE = 2147483647; // База системы счисления. Оно же максимальное число в ячейке +1.
for (int i = 0; i < 3; ++i)
{
int carry = 0;
for (int j = 0; j < 3; ++j)
{
carry += c.bits[i + j] + a.bits[i] * b.bits[j];
c.bits[i + j] = carry % BASE;
carry /= BASE;
}
int i = len1 + len2 - 1;
while (carry > 0)
{
carry += c.bits[i];
c.bits[i] = carry % BASE;
carry /= BASE;
++i;
}
}
int sign = sign_1 ^ sign_2;
*result = c;
s21_set_sign(result, sign);
return ret;
}
typedef struct {
unsigned int bits[4];
} decimal;
import React, { useEffect, useState } from 'react';
import logo from './logo.svg';
import './App.css';
function App() {
const [count,setCount] = useState(() => {
const count:number = JSON.parse(localStorage.getItem('count') || '');
return Number.isInteger(count) ? count : 0;
});
const inc = () => {
setCount(prev => prev+1)
}
const dec = () => {
setCount(prev => prev-1)
}
useEffect(() => {
localStorage.setItem('count',JSON.stringify(count))
},[count])
return (
<div className="App">
<h1>Count: {count}</h1>
<button onClick={inc}>+</button>
<button onClick={dec}>-</button>
</div>
);
}
export default App;