|
Not being sure that I understand exactly.
The floating point numbers are stored binary in memory already.
Assuming the system is little-endian and the number is 64 bit real and also according to IEEE 754;
double d = -16.735;
char *p = (char *)&d;
p[7] ... p[0]
if you convert 8 hex. digits to ascii-binary,
you' ll get binary representation of the number like below.
1100 .... 1100
if you want to, you can split it into parts.
First bit is sign, next 11 are biased exponent, others are mantissa without first (set) bit. You can also unbias the exponent. If you put a 1 in front of the last 52 bits, you will get the same long string of binary digits in your post for 0.735 same as with online number calculator.
As you may also want to know, there are also some functions (ANSI compatible, i think) in math library, (so <math.h> has to be included).
frexp() function - To split FP number into human readable (10 based) mantissa and exponent parts.
modf() function - To split it into fractional and integer parts.
|
|
|
|
|
Hi,
the easiest way probably is like this for converting val to (sign,exp,mant):
0. threat special values separately (mainly zero); for others do:
1. sign=0;
2. if (val<0) {sign=1; val=-val;}
3. exp=0;
4. while (val>=1) {exp++; val/=2;}
5. while (val<0.5) {exp--; val*=2;}
6. now val is in [0.5,1); we assume you want M bits for mantissa, then:
7. val*=1<<m;
8. mant="(int)val;" this="" will="" give="" exactly="" m="" bits
possible="" deviations:
-="" the="" exponent="" may="" be="" biased="" (e.g.="" always="" add="" 0x80)
-="" step="" 8="" perform="" rounding="" instead="" of="" truncation
-="" 7="" and="" act="" as="" if="" is="" one="" more,="" then="" drop="" highest="" bit="" (as="" it="" set)
=""
<div="" class="ForumSig">Luc Pattyn
I only read code that is properly indented, and rendered in a non-proportional font; hint: use PRE tags in forum messages
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Is it -16.735 or -16,735?
-16.735 = -10000.1011110000101000111101011100001010001111010111
-16,735 = -100000101011111
The general procedure is to do integer and fraction part separately.
For integer part N :
1. If N is not zero, divide N by 2
2. If remainder is 1 write down 1, if its 0 write down 0
3. N = N/2 - remainder. Go back to Step 1.
Finally, write the 0 and 1 in reverse order.
Example, N = 40
1. 40/2 = 20. Remainder = 0. Write 0
2. 20/2 = 10. Remainder = 0. Write 0
3. 10/2 = 5. Remainder = 0. Write 0
4. 5/2 = 2 + 1/2. Remainder = 1/2. Write 1
5. 2/2 = 1. Remainder = 0. Write 0
6. 1/2 = 0 + 1/2. Remainder = 1/2. Write 1
Threfore, 40 = 101000
For fraction part F,
1. If F is not zero, Multiply F by 2.
2. If result is greater than or equal to 1, write down 1. F = (F * 2) - 1
3. If result is not greater than 1, write down 1. F = (F * 2)
4. If F > 0 go back to step 1.
Example, F = 0.25
1. 0.25 * 2 = 0.5. Write down 0
2. 0.5 * 2 = 1. Write down 1
Thus 0.25 = 0.01
|
|
|
|
|
Hello,
I have already implemented that my application starts when a file associated with it is doubleclicked in explorer. However, this only works when my program does not run when the doubleklick happens. It then opens the associated file.
I want to implement the same behaviour when my application is already running, i.e. my app is up and waiting, and someone doubleclicks a file associated with it. What's the best way to get that message in my application?
|
|
|
|
|
What currently happens if you double-click a file within Explorer and your app is already running? Does a second instance come up?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Sorry, of course I should have mentioned this before: my application is dialog-based, and it is a single-instance application already. That means I use Findwindow when I start my program, and if I find another instance of it running I quit. Instead, I should post some kind of message telling the running instance that I want to open a file instad, this is what I haven't figured out yet.
|
|
|
|
|
Erik wrote: That means I use Findwindow when I start my program...
You should be using a mutex instead. FindWindow() could potentially cause a deadlock situation.
Erik wrote: Instead, I should post some kind of message telling the running instance that I want to open a file instad, this is what I haven't figured out yet.
Are you referring to PostMessage() ?
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I had a similar problem. I searched CP for "single instance", and the first article that came up was:
Limiting an application to a single Instance - the MFC way[^]
I fixed a small (but pretty nasty) buf in the demo program, and all is good. Read the article, and some of the comments for more information.
Good luck,
Iain.
I have now moved to Sweden for love (awwww).
If you're in Scandinavia and want an MVP on the payroll (or happy with a remote worker), or need contract work done, give me a job! http://cv.imcsoft.co.uk/[ ^]
|
|
|
|
|
We are having Host application which sends file data streams 64 bytes at a time continuously to target through TCP/Ip connection. while sending data if LAN cable is disconnected Target is executing recv(). it is not blocking at recv(). is there any means of getting connection status before executing recv()?
|
|
|
|
|
nvshree87 wrote: is there any means of getting connection status before executing recv()?
What is wrong with calling recv() and evaluating a possible error code with WSAGetLastError() ? There are for example WSAECONNABORTED and WSAECONNRESET to signal an interrupted TCP stream.
/M
|
|
|
|
|
Hi All,
I Tried to change the default icon in MFC by going to the toolbox and editing it and i built the solution.
When i run the application there is no change happening...
I tried searching in the internet .... but i am not able to find anything
So somebody pls tellme howto do it...
Regards,
Hari
|
|
|
|
|
try Resource Files folder ..in your project directory ..its possible to change it
|
|
|
|
|
Can u please be a bit more detailed ...
I opened the directory and the resources folder and CLicked on the icon which says MFC and changed it and built it again ...
But no Luck... it still not working
|
|
|
|
|
You should change the proper image type icon (The application bar shows the 16x16 one).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hey ,
There are 3 16x16 which one should i change!!!
Thanks to Both For the Quick reply
|
|
|
|
|
You should actually change all the images of the icon.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
When we lauch the dialog it actually shows a 32x32 (16 colors) i changed that and it works ...
Thanks,
Hari
|
|
|
|
|
Hi All,
Can anybody give me an example to get the drives of a client pc from a server pc using NetServerDiskEnum.Please specify the first argument i.e LPWSTR servername.
Thanks,
Abinash Mohanty
|
|
|
|
|
Abinash Mohanty wrote: Can anybody give me an example to get the drives of a client pc from a server pc using NetServerDiskEnum.
Was this[^] impossible to find?
|
|
|
|
|
Thanks for your reply.But if I run this example on my pc it retrieves the drives of my pc.Suppose I want to retreive the drives of a pc having name for eg. abc which is connected through LAN to my pc. Please tell me the first parameter of NetServerDiskEnum .
Regards,
Abinash
|
|
|
|
|
Abinash Mohanty wrote: Please tell me the first parameter of NetServerDiskEnum .
Did you read the documentation on the link I gave you?
|
|
|
|
|
|
I am new to multithreading and my application doesnot compile. It is a Dialog Based Applicationin MFC with only one ButtonCtrl
Here's the code
UINT ThreadFunc(LPVOID pParam)
{
MessageBox("Thread Started");
return 0;
}
void CAppDlg::OnButtonClkRunThread()
{
AfxBeginThread(ThreadFunc, this);
}
Where am I going wrong?
Manmohan Bishnoi
|
|
|
|
|
Usually compiler errors are pretty informative, so have a look at it.
I guess the error occurs in
Manmohan29 wrote: MessageBox("Thread Started");
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
try this ...
UINT ThreadFunc (LPVOID lpParam)
{
::MessageBox(0,L"Thread Started",L"",1);
return 0;
}
void CAppDlg::OnButtonClkRunThread()
{
::AfxBeginThread (ThreadFunc,this);
}
|
|
|
|