Домашни от Operators, Expressions And Statements


В тази тема домашните стават с една идея по-трудно, особено последната 🙂
1. Write an expression that checks if given integer is odd or even.
2. Write a boolean expression that checks for given integer if it can be divided (without remainder) by 7 and 5 in the same time.
3. Write an expression that calculates rectangle’s area by given width and height.
4. Write an expression that checks for given integer if its third digit (right-to-left) is 7. E. g. 1732  true.
5. Write a boolean expression for finding if the bit 3 (counting from 0) of a given integer is 1 or 0.
6. Write an expression that checks if given point (x, y) is within a circle K(O, 5).
7. Write an expression that checks if given positive integer number n (n ≤ 100) is prime. E.g. 37 is prime.
8. Write an expression that calculates trapezoid’s area by given sides a and b and height h.
9. Write an expression that checks for given point (x, y) if it is within the circle K( (1,1), 3) and out of the rectangle R(top=1, left=-1, width=6, height=2).
10. Write a boolean expression that returns if the bit at position p (counting from 0) in a given integer number v has value of 1. Example: v=5; p=1  false
11. Write an expression that extracts from a given integer i the value of a given bit number b. Example: i=5; b=2  value=1.
12. We are given integer number n, value v (v=0 or 1) and a position p. Write a sequence of operators that modifies n to hold the value v at the position p from the binary representation of n.
Example: n = 5 (00000101), p=3, v=1  13 (00001101)
n = 5 (00000101), p=2, v=0  1 (00000001)
13. Write a program that exchanges bits 3, 4 and 5 with bits 24, 25 and 26 of given 32-bit unsigned integer.
14*. Write a program that exchanges bits {p, p+1, …, p+k-1) with bits {q, q+1, …, q+k-1} of given 32-bit unsigned integer.

Т.к. домашните стават все по-дълги и по-дълги реших този път да ги кача на отделен сайт, вместо да ги поствам направо тук.


Advertisements

4 thoughts on “Домашни от Operators, Expressions And Statements

  1. Здр, блога и решенията на задачите ти са супер. Ако може да обясниш малко по- обстойно решението ти на задача 13 в оператори и изрази, че немога да осетя смисъла и. Благодаря!

    • Като цяло логиката е следната:
      1. Взимаме битовете на позиция 3, 4, 5 , чрез маската 7 ( в двоична бройна система тя е 111 ) и си я съхраняваме в някаква променлива.
      2. Взимаме битовете на позиция 24, 25, 26, чрез маската 7 ( аналогично на предходното, просто побитовото изместване е друго ).
      3. Изместваме побитово 2те 3ки битове запазени в първите 2 точки за да се озоват на нужните места ( първата променлива с 21 на ляво, а втората с 21 на дясно ).
      4. Зануляваме битовете на позиции 3, 4, 5, 24, 25, 26.
      5. Вмъкваме 2те ни 3ки битове в оригиналното число, чрез побитов OR.

      Поздрави,
      Теодор

  2. Схванах логиката горе долу, зора беше как точно и от къде идва самото число на маската. Побитовите оператори определено са си главоблъсканица 🙂
    Благодаря ти за отговора!
    Поздрави,
    Румен

    • Btw имай предвид, че всяко решение с побитови оператори, може да се направи и без тях т.е. не е задължително да ги използваш, макар с тях нещата стават доста по-бързи 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s