In ANSI C section 2.9, the bitwise operators, I am unable to understand this particular code.   I know how each bitwise operator works, but combinations need some help.  getbits(x, 4, 3)  unsigned getbits(unsigned x, int p, int n) {     return (x &gt;&gt; (p + 1 - n)) &amp; ~(~0 &lt;&lt; n); }
In chapter 2, the section on bitwise operators (section 2.9), I'm having trouble understanding how one of the sample methods works.  Here's the method provided:  unsigned int getbits(unsigned int x, int p, int n) {     return (x &gt;&gt; (p + 1 - n)) &amp; ~(~0 &lt;&lt; n); }   The idea is that, for the given number x, it will return the n bits starting at position p, counting from the right (with the farthest right bit being position 0). Given the following main() method:  int main(void) {     int x = 0xF994, p = 4, n = 3;     int z = getbits(x, p, n);     printf("getbits(%u (%x), %d, %d) = %u (%X)\n", x, x, p, n, z, z);      return 0; }   The output is:     getbits(63892 (f994), 4, 3) = 5 (5)   I get portions of this, but am having trouble with the "big picture," mostly because of the bits (no pun intended) that I don't understand.  The part I'm specifically having issues with is the complements piece: ~(~0 &lt;&lt; n). I think I get the first part, dealing with x; it's this part (and then the mask) that I'm struggling with -- and how it all comes together to actually retrieve those bits. (Which I've verified it is doing, both with code and checking my results using calc.exe -- thank God it has a binary view!)  Any help?
Why do most C programmers name variables like this:  int *myVariable;   rather than like this:  int* myVariable;   Both are valid. It seems to me that the asterisk is a part of the type, not a part of the variable name. Can anyone explain this logic? I'm new to Ubuntu. I tried installing it with Windows 8.1, but failed I lost all my files.  I have successfully formatted my PC and installed Ubuntu, but how do I install codecs to play audio and videos files ? How to close view windows? I would like to close some view windows that I opened accidentally.  See the image below:    Edit: another note: I tried searching for the solution, but only found things like "Join Area", which don't seem to work in this situation. How do you clone a Git repository into a specific folder? Executing the command git clone git@github.com:whatever creates a directory in my current folder named whatever, and drops the contents of the Git repository into that folder:  /httpdocs/whatever/public   My problem is that I need the contents of the Git repository cloned into my current directory so that they appear in the proper location for the web server:  /httpdocs/public   I know how to move the files after I've cloned the repository, but this seems to break Git, and I'd like to be able to update just by calling git pull. How can I do this? I will quote a question from my textbook, to prevent misinterpretation:     Let $G$ be a finite abelian group and let $m$ be the least common multiple of the orders of its elements. Prove that $G$ contains an element of order $m$.   I figured that, if $|G|=n$, then I should interpret the part with the least common multiple as $lcm(|x_1|,\dots,|x_n|)=m$, where $x_i\in G$ for $0\leq i\leq n$, thus, for all such $x_i$, $\exists a_i\in\mathbb{N}$ such that $m=|x_i|a_i$. I guess I should use the fact that $|x_i|$ divides $|G|$, so $\exists k\in \mathbb{N}$ such that $|G|=k|x_i|$ for all $x_i\in G$. I'm not really sure how to go from here, in particular how I should use the fact that $G$ is abelian. Change the size of a math symbol How can I get something like in the figure, where G in the middle is larger than normal letters in math mode? Is there any way to get a hat wider than widehat?  Why doesn't  \widehat{abcdefghijklmnopqrstuvwxyz}   really go over all of it? I want to make a JavaScript application that's not open source, and thus I wish to learn how to can obfuscate my JS code? Is this possible? Diamond is not shown for mod name under wiki posts If a diamond mod is an author of a wiki post then the diamond is not displayed besides the mod name. E.g. :        Even when the name refers to the user profile page (in case of more then one author) like in :        Is it intentional or a bug? If I create a custom environment based on the equation environment, I get a spacing issue: the next line of text after my environment closes doesn't start on the left margin.  Example code:  \documentclass{article} \begin{document} \newenvironment{myenv}{\begin{equation}}{\end{equation}} \noindent $| \leftarrow$ this is the left margin. \begin{myenv} e ^{i \pi} + 1 = 0 \end{myenv} $| \leftarrow$ this isn't the left margin. \end{document}   Output:    Removing the newline after \end{myenv} solves the spacing problem, but the resulting code is not readable.  Of course, in this example I could just use the equation environment itself. My real issue involves a more complex custom environment that suffers from the same problem, and which also includes an equation environment within it. Stopping all automatic updates Windows 10 We've upgraded some machines to Windows 10 and realized there were some updates which updated as required. However, I realized there was no option available to stop the download similar to that on Windows 7 and 8.1. The only way I could stop the download was to stop the Windows Update service.  My question is does anyone know of a way to stop auto updates or is stopping the service is the only solution? When did 5 foot squares become standard in D&D? Driver for Validity Sensors Fingerprint scanner prakhar@pr3d4tOr:~$ lsusb -s 001:003 -v  Bus 001 Device 003: ID 138a:0018 Validity Sensors, Inc. Fingerprint scanner Couldn't open device, some information will be missing Device Descriptor:   bLength                18   bDescriptorType         1   bcdUSB               1.10   bDeviceClass          255 Vendor Specific Class   bDeviceSubClass        17    bDeviceProtocol       255    bMaxPacketSize0         8   idVendor           0x138a Validity Sensors, Inc.   idProduct          0x0018 Fingerprint scanner   bcdDevice            0.78   iManufacturer           0    iProduct                0    iSerial                 1    bNumConfigurations      1   Configuration Descriptor:     bLength                 9     bDescriptorType         2     wTotalLength           46     bNumInterfaces          1     bConfigurationValue     1     iConfiguration          0      bmAttributes         0xa0       (Bus Powered)       Remote Wakeup     MaxPower              100mA     Interface Descriptor:       bLength                 9       bDescriptorType         4       bInterfaceNumber        0       bAlternateSetting       0       bNumEndpoints           4       bInterfaceClass       255 Vendor Specific Class       bInterfaceSubClass      0        bInterfaceProtocol      0        iInterface              0        Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x01  EP 1 OUT         bmAttributes            2           Transfer Type            Bulk           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0040  1x 64 bytes         bInterval               0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x81  EP 1 IN         bmAttributes            2           Transfer Type            Bulk           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0040  1x 64 bytes         bInterval               0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x82  EP 2 IN         bmAttributes            2           Transfer Type            Bulk           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0040  1x 64 bytes         bInterval               0       Endpoint Descriptor:         bLength                 7         bDescriptorType         5         bEndpointAddress     0x83  EP 3 IN         bmAttributes            3           Transfer Type            Interrupt           Synch Type               None           Usage Type               Data         wMaxPacketSize     0x0008  1x 8 bytes         bInterval               4   I have searched high and low but I cannot get this to work. All questions related to 138a:0018 are either unanswered or old. Any help guys? Is there a performance difference between i++ and ++i in C++? We have the question   What's the answer for C++? Is there a way to consistently increase the vertical spacing between equation lines in a gather (or gather*) environment from amsmath?  Specifically, I want to produce something like  \begin{gather*} a = b \\[2ex] c = d \\[2ex] e = f \end{gather*}   without having to write [2ex] at the end of each equation line.  I can think of some hacks that redefine \\ to automatically add the spacing, but is there some cleaner/better way to achieve this? Approximation of measurable function by simple functions Smeared creamy look effect i came across a photo where the gradient looks like it s smeared from cream. It is hard to explained by saying so here is the  Let say i create 2 similar shapes with the gradient pattern then adjust the opacity but the edges will still remain. But in the example the edges are appeared to be soft and hard randomly. Thanks in advance ! What is DOCTYPE? How to find the magnetic field due to a revolving electron of hydrogen atom in first orbit Many companies offer index funds and ETFs. If two funds or ETFs track the same fund, what differentiates the two? Is it common for one index fund to outperform another? How can this happen if the funds/ETFs are tracking the same index?  I found . When forced to choose between them, index ETFs look like the better option (under the right circumstances), but what differentiates index funds/ETFs when compared to similar vehicles?