Is it correct that a long in C has a size of 4 bytes for a 32-bit platform and 8 bytes for a 64-bit platform?
26836
Not to long ago, someone told me that long are not 64 bits on 64 bit machines and I should always use int. This did not make sense to me. I have seen docs (such as the one on Apple's official site) say that long are indeed 64 bits when compiling for a 64-bit CPU. I looked up what it was on 64-bit Windows and found         Windows: long and int remain 32-bit in length, and special new data types   are defined for 64-bit integers.      (from )  What should I use? Should I define something like uw, sw ((un)signed width) as a long if not on Windows, and otherwise do a check on the target CPU bitsize?
35488
What's the difference between 32 bit OS and 64 bit OS? Can a 32 bit OS run in a 64 bit processor?
2629
8 bits representing the number 7 look like this:  00000111   Three bits are set.     What are algorithms to determine the number of set bits in a 32-bit integer?
56802
I know that other bit sizes are possible, e.g. this HTTPS server seems to have a 9000 bit key , but it's very rare that one sees a key not of size 1024, 2048, 4096, etc. bits in common usage - what is the reason for this? Is it just customary, or is there a cryptographic advantage?
73190
got me wondering about the differences between these three ways of measuring size: a kibibyte, a kilobit, and the conventional kilobyte.  I understand that these measurements have different uses (data transfer rate is measured in bits/sec), but I'm not quite sure if I can tell the difference between Mb and MB and MiB.  Here is a comment, reproduced below, taken from  (emphasis mine).     The C64 has 65536 bytes of RAM. By   convention, memory size is specified   in kibiBytes, data transfer rates in   kilobits, and mass storage in   whatever-the-manufacturers-think-of-now-Bytes. Harddrives use T, G, M and k on the   label, Windows reports the size in Ti,   Gi, Mi and ki. And those 1.44MB   floppys? Those are neither 1.44MB nor   1.44MiB, they are 1.44 kilokibibytes. That's 1440kiB or 1'474'560 bytes. –   Third
59948
I originally had an array[1..1000] that was defined as a global variable. But now I need that to be n, not 1000 and I don't find out n until later. I know what n is before I fill the array up but I need it to be global therefore need a way to define the size of a global array at run time.  Context is filling an array with a linear transformation of the bytes in a file.  I don't know how big the file is until someone wants to open it and the files can be of any size.
82601
I'm trying to convert an incoming sting of 1s and 0s from stdin into their respective binary values (where a string such as "11110111" would be converted to 0xF7). This seems pretty trivial but I don't want to reinvent the wheel so I'm wondering if there's anything in the C/C++ standard libs that can already perform such an operation?
22427
The output from uname:  root@debian:~ # uname -a Linux 5asnb 2.6.32-5-amd64 #1 SMP Mon Jun 13 05:49:32 UTC 2011 x86_64 GNU/Linux   However the /sbin/init executable shows up as 32-bit:  root@debian:~ # file /sbin/init /sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped   Other aspects of the system seem to contradict things as well:  root@debian:~ # echo $HOSTTYPE i486  root@debian:~ # getconf LONG_BIT 32
21752
I'm a beginner C programmer, and I assumed that this would be the case, but would like some affirmation if possible.  If they are the same, why not just take one argument instead?
52260
I am using 32-bit Ubuntu 14.4 LTS.  How can I tell if my computer can run a 64-bit os? I am confused between architecture and CPU op-mode.  An excerpt from /proc/cpuinfo:  $ grep " lm " /proc/cpuinfo flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx **lm** constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm dtherm tpr_shadow vnmi flexpriority   Output from lscpu:  kamal@kamal-G31T-M7:~$ lscpu Architecture:          i686 CPU op-mode(s):        32-bit, 64-bit Byte Order:            Little Endian CPU(s):                2 On-line CPU(s) list    0, 1 Thread(s) per core:    1 Core(s) per socket:    2 Socket(s):             1 Vendor ID:             GenuineIntel CPU family:            6 Model:                 23 Stepping:              10 CPU MHz:               2793.084 BogoMIPS:              5586.16 Virtualization:        VT-x L1d cache:             32K L1i cache:             32K L2 cache:              2048K …
1450
Why does the sizeof operator return a size larger for a structure than the total sizes of the structure's members?
96257
In C, are the shift operators (&lt;&lt;, &gt;&gt;) arithmetic or logical?
91001
What I understand about 32-bit OS is, the address is expressed in 32 bits, so at most the OS could use 232 = 4G memory space -- I assume the unit is bytes, so 4GB.  Does this mean if any machine with a 32-bit OS (be it Windows or Unix) has more than 4GB total of RAM + page file on hard disk, for example 8GB RAM and 20GB page file, its memory will never be "used up"?  By "used up" I mean that increasing RAM or page file won't help the performance; of course, it's always possible an application will keep requesting memory from the OS but failing.  Similarly, if this 32-bit OS machine has 2GB RAM and 2GB page file, increasing the page file size won't help the performance. Is this true?
11485
I'm attempting to mount a partition from a NAS and the block size is 65536 bytes, this is above my distribution's precompiled kernel memory paging size of 4KiB, so I cannot mount it normally.  Which kernel compilation parameters would I need to change to get a memory paging size large enough?  Would it be possible under the x86-64 architecture?  EDIT: There doesn't seem to be an option for it in make xconfig unless I'm just missing it.  From page_types.h under arch\x86\include\asm  /* PAGE_SHIFT determines the page size */ #define PAGE_SHIFT  12 #define PAGE_SIZE   (_AC(1,UL) &lt;&lt; PAGE_SHIFT) #define PAGE_MASK   (~(PAGE_SIZE-1))`   It doesn't look to be configurable.  I could change this number directly to 16 and it would probably make pretty explosions and destroy Tokyo.  I shall probably try it later this evening.
119783
As a precursor to writing a compiler I'm trying to understand the Windows (32-bit) Portable Executable format. In particular I'd like to see an example of a bare-bones executable which does nothing except load correctly, run and exit.  I've tried writing and compiling a simple C main function which does nothing but the resulting .exe is ~22KB and contains many imports from KERNEL32.DLL (presumably used by LIBC to set up environment, heaps etc.). Even the DOS Header could probably be smaller (it currently prints the default 'This program cannot be run in DOS mode').  What is the structure of the smallest possible Windows 32-bit executable?
1427
What is the difference between 32-bit and 64-bit Ubuntu? I've heard the 64-bit platform performs better and can detect more than 4GB of RAM. Also, while some apps haven't ported to 64-bit yet, ia32-libs lets a 64-bit machine run them.  If so, why not promote 64-bit over 32-bit?
9887
How do I see the type of a variable whether it is unsigned 32 bit, signed 16 bit, etc.?  How do I view it?