Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int Modulo(int p, int q)
- {
- q = Math.Abs(q);
- var result = p % q;
- if (result < 0)
- result += q;
- return result;
- }
- int p = 102;
- int q = 16;
- int needAdd = Modulo(-p, q);
- int p = 102;
- int needAdd = -p & 0xf;
- am = (a + 0x0FL) & ~0x0FL; // ближайшее сверху число, кратное 16
- d = am - a; // разница
- исходное_число = 102
- кратное_число = 16
- частное = 6
- если остаток_от_деления(исходное_число) == 0
- возвращаем исходное_число
- иначе
- возвращаем (частное + 1) * кратное_число - исходное_число
- #include <stdio.h>
- int main() {
- int input_number = 29;
- int multiple = 16;
- int quotient = input_number / multiple;
- int answer = 0;
- if (input_number % multiple == 0) {
- answer = input_number;
- } else {
- answer = (quotient + 1) * multiple - input_number;
- }
- printf("%un", answer);
- return 0;
- }
- искомое = делитель - функция ( делимое, делитель )
- искомое = делитель - ( делимое оператор делитель )
- искомое = делитель - ( делимое - делитель * функция ( делимое, делитель ) )
- искомое = делитель - ( делимое - делитель * ( делимое оператор делитель ) )
- искомое = делитель - ( делимое - делитель * функция ( делимое оператор делитель ) )
- если делитель > 0 и число > 0
- пока число >= 0
- число = число - делитель
- конец цикла
- искомое = -число
- конец условия
- Math.floor((102+15) / 16) * 16
- function calc(x, m) {
- return Math.floor((x+m-1) / m) * m;
- }
- 0: 0000 0000
- 16: 0001 0000
- 32: 0010 0000
- 11: 0000 1011 - только третий бит = "0"
- добавить 0100 - "1" для третьего бита
- добавить 0001 - и ещё +1, чтобы все младшие биты обнулились.
- -------------
- не хватало 0100 (это 4) и ещё 1 = итого +5
- 22: 0001 0110 - нули в первом и четвертом битах
- добавить 1001 (это 9)
- добавить 0001 (единицу)
- -------------
- добавляем 10
- исходное число: 0101 1100
- маска мл. 4 бит: 0000 1111
- ---------------------------
- результат «И»: 0000 1100
- 1100
- «НЕ»
- -----
- 0011
- 0011 = 3
- +0001 = 1
- -----
- 0100 = 4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement