Tag Info

Hot answers tagged

28

The 64-bit extension for 80x86 processors (nowadays called just x86) was invented by AMD. Back then Intel was betting on the Itanium line for servers and even went on record saying that "64 bits won't be needed on the desktop anytime soon". AMD, on the other hand, was producing the successful Athlon line, which for a short while was much faster and ...


16

As mentioned by Twisol, you are probably looking for "word-size", although what you should really be saying is: "The registers (integer/address) of my CPU are 64-bits wide"* You are definitely not looking for Instruction Set, as this is simply the actual set of instructions that a CPU understands. Your 64-bit CPU will have a 64-bit instruction set, but ...


14

The number is treated as an unsigned integer in this case which means all bits set will not produce -1 (if if where signed then yes, it would be correct). So all 16 bits set will give you 65535. Interesting enough though, signed state isn't a factor when doing logic bit-operations. Bits are themselves not signed as they are the lowest component in a ...


13

It is trivial. 65535 in binary is all ones, so ANDing it with any X less than 65535 will give you X.


11

I would like to have a [...] way of creating unique error numbers, across projects and across developers. IMHO that is the bad idea. You should avoid the need for having a global unique error number across project boundaries. That is a global requirement you cannot fulfill as soon as you need to add third-party components, and at the long run, it will ...


9

IPv4 is a very good example where a limited spec size caused a very expensive problem down the line. 4.3 billion addresses just aren't enough anymore. Now ISPs around the world are desparately rolling out IPv6 with a 128-bit address space which translates into an address for every atom in your body or something like that.


7

Answering the second part of your question. You've tagged it as 32-bit so, 65535 in 32 bits is 00000000000000001111111111111111, signed or unsigned it is not -1.


6

This works brilliantly on 64 bit machines, but the resulting integer is too large for 32 bit computers. Actually, 32 bit computers can handle 64 bit numbers just fine. OK, so 64 bit arithmetic might take a few extra clock cycles on a 32 bit machine, but this is unlikely to be significant. (Or even relevant ... in your use-case.) For instance, the ...


4

The bit width generally refers to the native word size (i.e., the width of general-purpose integer registers) of the processor. On x86 processors specifically, 64-bit mode is referred to in the documentation as long mode (which enables the 64-bit general-purpose registers), in contrast to 32-bit legacy mode, 32-bit protected mode (which is the native mode ...


3

Why not use a string data type for the error code instead of a number? This will allow large code to be stored without any issues as to integer size. Even though the error code does look like a number, unless the design is calling for arithmetic with it then it is not a number, then it really should be a string data type. I'm also a little concerned ...


3

You have choices: everyone uses the same architecture as you're providing to users. If you ship 64 bit, then develop on 64bit. Everyone uses whatever dev architecture they like, and you ensure quality through a good integration environment, or multiple if you ship different versions. There are problems, but these are quite temporary - in that you might ...


3

Here's a good jumping off point for one version, the "497 day bug."


3

I use the term "bit width." According to Wikipedia, it's can be referred to as "word size," "bit width," "data path width," or "integer precision" when dealing with strictly integer numbers (as opposed to floating point). Wikipedia reference


2

The Handbook of Floating-point Arithmetic, while rather expensive, is about as comprehensive a reference as you can get on the subject. It's designed with applicative uses in mind though it may be hard to parse the formal sections of math contained there-in. However, it will give a solution set for division in both hardware and software if you can parse the ...


2

This is a very bad idea. You want "Easy and memorable". You've already discovered that your solution isn't easy. You're considering backing yourself into a 64-bit corner to solve this problem. What happens when Mary Smith and Mike Simpson join the team? How can you guarantee uniqueness of the numeric part? Whenever you rely on programmer memory, you place ...


1

Let a database create your unique number for you -- log the error to a sql db, and your problem is solved. Include application info (ie what app encountered the error) and Bob's your uncle.


1

Given the division: AAABBBCCC / X it can be rewritten to the form: (AAA * 10^6 / X) + (BBB * 10^3 / X) + (CCC / X). These algebraic formulae, plus or minus some division or multiplication by powers of 10, will get the answer.


1

There's far less probability of issues if you all use the same toolchain. There may not ever be a problem, but can you soak the time spent investigating why "it works on my machine" for our 64bit friends, and not with your 32bit ones if there is? It's usually the best option to go with lowest common denominator. Behaviour does sometime differ from platform ...


1

The year 2000 problem was similar, except that people used decimal numbers instead of binary, and encoded just two last digits. This can be a useful example if explaining to someone who has little experience with binary. FAT12/FAT16/FAT32 were adapted to cover for bigger and bigger storage. TeX has some interesting properties when representing dimensions ...



Only top voted, non community-wiki answers of a minimum length are eligible