ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Binary Numbers (https://www.excelbanter.com/excel-discussion-misc-queries/217278-binary-numbers.html)

Sanford Lefkowitz

Binary Numbers
 
This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford

Bernie Deitrick

Binary Numbers
 
Sanford,

For numbers 512 and below:

=LEN(DEC2BIN(A1))-LEN(SUBSTITUTE(DEC2BIN(A1),"1",""))

For longer numbers, you could use a UDF - put this code into a standard codemodule:

Function BinCount(myVal As Long) As Integer
While myVal 0
If myVal Mod 2 = 1 Then BinCount = BinCount + 1
myVal = (myVal - myVal Mod 2) / 2
Wend
End Function

used like

=BinCount(A1)

HTH,
Bernie
MS Excel MVP


"Sanford Lefkowitz" wrote in message
...
This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford




Gary''s Student

Binary Numbers
 
In A1 enter:

11011011001110010101001110101011101011
as text

in B1, enter:
=LEN(A1)-LEN(SUBSTITUTE(A1,"1","")) to display 23

--
Gary''s Student - gsnu200828


"Sanford Lefkowitz" wrote:

This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford


Sanford Lefkowitz

Binary Numbers
 
clever technique

Thanks!!


"Bernie Deitrick" wrote:

Sanford,

For numbers 512 and below:

=LEN(DEC2BIN(A1))-LEN(SUBSTITUTE(DEC2BIN(A1),"1",""))

For longer numbers, you could use a UDF - put this code into a standard codemodule:

Function BinCount(myVal As Long) As Integer
While myVal 0
If myVal Mod 2 = 1 Then BinCount = BinCount + 1
myVal = (myVal - myVal Mod 2) / 2
Wend
End Function

used like

=BinCount(A1)

HTH,
Bernie
MS Excel MVP


"Sanford Lefkowitz" wrote in message
...
This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford





Bernie Deitrick

Binary Numbers
 
Actually, it's sloppy - I should have changed this:

myVal = (myVal - myVal Mod 2) / 2

to this:

myVal = myVal \ 2

HTH,
Bernie
MS Excel MVP


"Sanford Lefkowitz" wrote in message
...
clever technique

Thanks!!


"Bernie Deitrick" wrote:

Sanford,

For numbers 512 and below:

=LEN(DEC2BIN(A1))-LEN(SUBSTITUTE(DEC2BIN(A1),"1",""))

For longer numbers, you could use a UDF - put this code into a standard codemodule:

Function BinCount(myVal As Long) As Integer
While myVal 0
If myVal Mod 2 = 1 Then BinCount = BinCount + 1
myVal = (myVal - myVal Mod 2) / 2
Wend
End Function

used like

=BinCount(A1)

HTH,
Bernie
MS Excel MVP


"Sanford Lefkowitz" wrote in message
...
This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford







James Silverton[_3_]

Binary Numbers
 
Bernie wrote on Wed, 21 Jan 2009 09:25:11 -0500:

For numbers 512 and below:


=LEN(DEC2BIN(A1))-LEN(SUBSTITUTE(DEC2BIN(A1),"1",""))


For longer numbers, you could use a UDF - put this code into a
standard codemodule:


Function BinCount(myVal As Long) As Integer
While myVal 0
If myVal Mod 2 = 1 Then BinCount = BinCount + 1
myVal = (myVal - myVal Mod 2) / 2
Wend
End Function


used like


=BinCount(A1)


That looks like the way to go but shouldn't BinCount be initialized to 0
?

--

James Silverton
Potomac, Maryland

Email, with obvious alterations: not.jim.silverton.at.verizon.not


Bernie Deitrick

Binary Numbers
 
James,

BinCount is a function name and not a variable, so it is reset to null (zero) every time the
function is called. The only time you need to initialize a function's value is when there is a
default return that is not null/zero - it can't hurt to use BinCount = 0 as the first line, but it
isn't needed.

HTH,
Bernie
MS Excel MVP


"James Silverton" wrote in message
...
Bernie wrote on Wed, 21 Jan 2009 09:25:11 -0500:

For numbers 512 and below:


=LEN(DEC2BIN(A1))-LEN(SUBSTITUTE(DEC2BIN(A1),"1",""))


For longer numbers, you could use a UDF - put this code into a
standard codemodule:


Function BinCount(myVal As Long) As Integer
While myVal 0
If myVal Mod 2 = 1 Then BinCount = BinCount + 1
myVal = (myVal - myVal Mod 2) / 2
Wend
End Function


used like


=BinCount(A1)


That looks like the way to go but shouldn't BinCount be initialized to 0 ?

--

James Silverton
Potomac, Maryland

Email, with obvious alterations: not.jim.silverton.at.verizon.not




James Silverton[_3_]

Binary Numbers
 
Bernie wrote on Wed, 21 Jan 2009 13:20:21 -0500:

BinCount is a function name and not a variable, so it is reset
to null (zero) every time the function is called. The only
time you need to initialize a function's value is when there
is a default return that is not null/zero - it can't hurt to
use BinCount = 0 as the first line, but it isn't needed.


HTH,
Bernie
MS Excel MVP



That looks like the way to go but shouldn't BinCount be
initialized to 0 ?

Thanks for the reply. Obviously, I am no expert on VBA but I was taught
to initialize variables in other programming languages.

--

James Silverton
Potomac, Maryland

Email, with obvious alterations: not.jim.silverton.at.verizon.not


Reg

Binary Numbers
 
elegant!


"Gary''s Student" wrote:

In A1 enter:

11011011001110010101001110101011101011
as text

in B1, enter:
=LEN(A1)-LEN(SUBSTITUTE(A1,"1","")) to display 23

--
Gary''s Student - gsnu200828


"Sanford Lefkowitz" wrote:

This might be more of a math question than Excel.

I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.

Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?

Thanks
Sanford


Bernd P

Binary Numbers
 
On 12 Mai, 15:01, Reg wrote:
elegant!



"Gary''s Student" wrote:
In A1 enter:


11011011001110010101001110101011101011
as text


in B1, enter:
=LEN(A1)-LEN(SUBSTITUTE(A1,"1","")) to display 23


--
Gary''s Student - gsnu200828


"Sanford Lefkowitz" wrote:


This might be more of a math question than Excel.


I have an application for which I would like to know the number of "1"s in
the binary representation of a number. For example 20 in binary is 10100,
which has 2 "1"s. I do not necessarily need the binary number itself.


Also, the DEC2BIN function does not work for numbers =512. Are there other
binary converters that do?


Thanks
Sanford- Zitierten Text ausblenden -


- Zitierten Text anzeigen -


=LEN(SUBSTITUTE(A1,"0",""))


All times are GMT +1. The time now is 05:40 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com