# Can someone convert memory address (hex) into MB for me?

Long story short, can someone convert this hex number memory address for me into MB?

0x000000022bffffff
---------------------------------------------

Long Story, I have to do some memory mapping to fix a problem with a crappy foxconn mobo to accept my fermi motherboard haha. That is the hex number I got from my mobo, I just don't understand how to view that as a MB form.

This is the guide I'm following:

cjmc45321988, just wrote a walkthrough for you below -- beer appreciated :D. It is a manual process that involves memory address computations, and was never meant to be user-friendly -- blame your mainboard BIOS writers for having to clean up after them. If you get stuck somewhere, post the specific step (and the output of the commands), and we can try to help further. In the future, please provide the relevant hardware configuration - in this case at minimum the Windows version (and 32-bit vs 64-bit), amount of RAM installed, and exact mainboard model.

To summarize:

1) Boot into 64-bit Linux, run these commands, and save the output:
dmesg | grep e820
cat /proc/mtrr

2) Get the last memory address (from the first command). In the above example, it's 0x1AC000000 in hex, or 6848MB:
[ 0.000000] BIOS-e820: 0000000100000000 - 00000001ac000000 (usable)

3) Compute the last address covered by write-back MTRRs (from the second command). In the above example, it's 6144MB + 512MB = 6656MB or 0x1A0000000 in hex:
reg02: base=0x180000000 (6144MB), size= 512MB: write-back, count=1

3) If the sizes are the same, stop here - this is not the problem. If the sizes are different, the first number is expected to be larger than the second number. Take the smaller number. This is the top address of your cached memory. In the example above, it is 0x1A0000000 hex, or 6656MB.

4) Boot into Windows, and change the current Windows boot loader entry to truncate the memory at this lower address. Make a backup copy of the current loader entry first, in case of error. For Windows 7, the steps are (must run from a command prompt that has been "run as administrator"):
bcdedit /copy {current} /d "Windows 7 - copy"
bcdedit /set {current} truncatememory 0x1A0000000
LVL 4
###### Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

DeveloperCommented:
I haven't read the long story yet, but the short story is:
022BFFFFFF = 9,328,132,095

Regards, Joe
0
Author Commented:
Is that in bit or bytes etc?

This is in reference for my system memory so I need it in MB.

Looks too big too be in MB I think

Basically in the long story the poster states:

Let the last memory address (from the first command). In the above example, it's 0x1AC000000 in hex, or 6848MB

But that is someone else's computer, so I imagine mine is different number since I have more memory. My number is showing 0x000000022bffffff when I do the commands. But 9,328,132,095 looks too big to be in MB.
0
DeveloperCommented:
I read some of the longer story (not all of it) and I see that they're saying:

01AC000000 = 6848MB

Here's how they got that:

01AC000000 = 7,180,648,448

They then divided that by 1024*1024 (1,048,576), which is 1MB in computer-speak. That is,

7,180,648,448/1,048,576 = 6848 MB

9,328,132,095/1,048,576 = 8896 MB

Regards, Joe
0

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

DeveloperCommented:
Our messages just crossed, but I think I answered your last question.
0
Author Commented:
8896 is the number I was looking for. Thank you very much Joe!
0
DeveloperCommented:
You're very welcome!
0
Author Commented:
Sorry to bother you again, but while I have you here for a moment do you know what

8704MB would be if we convert this number back to a memory address? NOTE: I know this is a different number than the 8896.

Edit: Created new question post for this

http://www.experts-exchange.com/Programming/Misc/Q_28233924.html
0
DeveloperCommented:
8704MB = 0x220000000

See detailed explanation at new question. Cheers, Joe
0
Commented:
Actually,
MB = 1,000,000 bytes  (10^6)
MiB = 1,048,576 bytes (2^20)

https://en.wikipedia.org/wiki/Mebibyte
0
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Software

From novice to tech pro — start learning today.