All ASCII characters with a given bit count Announcing the arrival of Valued Associate #679:...
Eigenvalues of the Laplacian of the directed De Bruijn graph
What is the purpose of the side handle on a hand ("eggbeater") drill?
Show two Lagrangians are equivalent
Why is arima in R one time step off?
Simulate round-robin tournament draw
What helicopter has the most rotor blades?
Is there a possibility to generate a list dynamically in Latex?
Calculating the expected value of truncated normal
My admission is revoked after accepting the admission offer
VBA: Single line if statement with multiple actions
Is there an efficient way for synchronising audio events real-time with LEDs using an MCU?
When does Bran Stark remember Jamie pushing him?
Is it accepted to use working hours to read general interest books?
Why aren't road bicycle wheels tiny?
Was Objective-C really a hinderance to Apple software development?
Why do owned slices take 16 bytes in rust? (on x64 machine)
Married in secret, can marital status in passport be changed at a later date?
Cisco DHCP Router
Can't solve system of linear equations (that need simplification first)
The 'gros' functor from schemes into (strictly) locally ringed topoi
Marquee sign letters
Is a self contained air-bullet cartridge feasible?
What is the ongoing value of the Kanban board to the developers as opposed to management
Why does Java have support for time zone offsets with seconds precision?
All ASCII characters with a given bit count
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
The PPCG Site design is on its way - help us make it awesome!
Sandbox for Proposed ChallengesBiplex: an important useless operatorConvert a “mixed-base” string to ASCIIAll Aboard the ASCII TrainSum of Modulo SumsCount the characters - bit by bit!Calculate the binary split sum of a wordMap inputted ASCII charactersDiluted Integer SumsCount the lucky tickets within the given rangeASCII Art Octagons
$begingroup$
(Title with thanks to @ChasBrown)
Sandbox
The Background
This challenge is inspired by a question that I recently posted on Puzzling Stack Exchange. Please feel free to follow the link if you are interested in the original question. If not then I won't bore you with the details here.
The Facts
Every printable standard ASCII character has a decimal value between 32 and 126 inclusive. These can be converted to their corresponding binary numbers in the range 100000 to 1111110 inclusive. When you sum the bits of these binary numbers you will always end up with an integer between 1 and 6 inclusive.
The Challenge
Given an integer between 1 and 6 inclusive as input, write a program or function which will output in any acceptable format all of the printable standard ASCII characters where the sum of the bits of their binary value is equal to the input integer.
Examples (showing output in four possible acceptable formats)
Input: 1
Output:
" "
"@"
Input: 2
Output: '!"$(0ABDHP`'
Input: 3
Output: "#%&)*,1248CEFIJLQRTXabdhp"
Input: 6
Output: ['?', '_', 'o', 'w', '{', '}', '~']
The Rules
- Assume the input will always be an integer (or string representation of an integer) between 1 and 6 inclusive.
- You may write a program to display the results or a function to return them.
- Output may be in any acceptable format but must be consistent for all inputs. If you choose to output a quoted string then the same type of quotes must be used for all inputs.
- Standard loopholes prohibited as usual.
- This is code golf so shortest code in each language wins.
Test Cases
A full set of expected results is available here (TIO) (ungolfed Python implementation).
code-golf
$endgroup$
add a comment |
$begingroup$
(Title with thanks to @ChasBrown)
Sandbox
The Background
This challenge is inspired by a question that I recently posted on Puzzling Stack Exchange. Please feel free to follow the link if you are interested in the original question. If not then I won't bore you with the details here.
The Facts
Every printable standard ASCII character has a decimal value between 32 and 126 inclusive. These can be converted to their corresponding binary numbers in the range 100000 to 1111110 inclusive. When you sum the bits of these binary numbers you will always end up with an integer between 1 and 6 inclusive.
The Challenge
Given an integer between 1 and 6 inclusive as input, write a program or function which will output in any acceptable format all of the printable standard ASCII characters where the sum of the bits of their binary value is equal to the input integer.
Examples (showing output in four possible acceptable formats)
Input: 1
Output:
" "
"@"
Input: 2
Output: '!"$(0ABDHP`'
Input: 3
Output: "#%&)*,1248CEFIJLQRTXabdhp"
Input: 6
Output: ['?', '_', 'o', 'w', '{', '}', '~']
The Rules
- Assume the input will always be an integer (or string representation of an integer) between 1 and 6 inclusive.
- You may write a program to display the results or a function to return them.
- Output may be in any acceptable format but must be consistent for all inputs. If you choose to output a quoted string then the same type of quotes must be used for all inputs.
- Standard loopholes prohibited as usual.
- This is code golf so shortest code in each language wins.
Test Cases
A full set of expected results is available here (TIO) (ungolfed Python implementation).
code-golf
$endgroup$
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.63vs?)?
$endgroup$
– Benjamin Urquhart
2 hours ago
1
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
1
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.
$endgroup$
– Erik the Outgolfer
1 hour ago
add a comment |
$begingroup$
(Title with thanks to @ChasBrown)
Sandbox
The Background
This challenge is inspired by a question that I recently posted on Puzzling Stack Exchange. Please feel free to follow the link if you are interested in the original question. If not then I won't bore you with the details here.
The Facts
Every printable standard ASCII character has a decimal value between 32 and 126 inclusive. These can be converted to their corresponding binary numbers in the range 100000 to 1111110 inclusive. When you sum the bits of these binary numbers you will always end up with an integer between 1 and 6 inclusive.
The Challenge
Given an integer between 1 and 6 inclusive as input, write a program or function which will output in any acceptable format all of the printable standard ASCII characters where the sum of the bits of their binary value is equal to the input integer.
Examples (showing output in four possible acceptable formats)
Input: 1
Output:
" "
"@"
Input: 2
Output: '!"$(0ABDHP`'
Input: 3
Output: "#%&)*,1248CEFIJLQRTXabdhp"
Input: 6
Output: ['?', '_', 'o', 'w', '{', '}', '~']
The Rules
- Assume the input will always be an integer (or string representation of an integer) between 1 and 6 inclusive.
- You may write a program to display the results or a function to return them.
- Output may be in any acceptable format but must be consistent for all inputs. If you choose to output a quoted string then the same type of quotes must be used for all inputs.
- Standard loopholes prohibited as usual.
- This is code golf so shortest code in each language wins.
Test Cases
A full set of expected results is available here (TIO) (ungolfed Python implementation).
code-golf
$endgroup$
(Title with thanks to @ChasBrown)
Sandbox
The Background
This challenge is inspired by a question that I recently posted on Puzzling Stack Exchange. Please feel free to follow the link if you are interested in the original question. If not then I won't bore you with the details here.
The Facts
Every printable standard ASCII character has a decimal value between 32 and 126 inclusive. These can be converted to their corresponding binary numbers in the range 100000 to 1111110 inclusive. When you sum the bits of these binary numbers you will always end up with an integer between 1 and 6 inclusive.
The Challenge
Given an integer between 1 and 6 inclusive as input, write a program or function which will output in any acceptable format all of the printable standard ASCII characters where the sum of the bits of their binary value is equal to the input integer.
Examples (showing output in four possible acceptable formats)
Input: 1
Output:
" "
"@"
Input: 2
Output: '!"$(0ABDHP`'
Input: 3
Output: "#%&)*,1248CEFIJLQRTXabdhp"
Input: 6
Output: ['?', '_', 'o', 'w', '{', '}', '~']
The Rules
- Assume the input will always be an integer (or string representation of an integer) between 1 and 6 inclusive.
- You may write a program to display the results or a function to return them.
- Output may be in any acceptable format but must be consistent for all inputs. If you choose to output a quoted string then the same type of quotes must be used for all inputs.
- Standard loopholes prohibited as usual.
- This is code golf so shortest code in each language wins.
Test Cases
A full set of expected results is available here (TIO) (ungolfed Python implementation).
code-golf
code-golf
asked 2 hours ago
ElPedroElPedro
3,5931023
3,5931023
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.63vs?)?
$endgroup$
– Benjamin Urquhart
2 hours ago
1
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
1
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.
$endgroup$
– Erik the Outgolfer
1 hour ago
add a comment |
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.63vs?)?
$endgroup$
– Benjamin Urquhart
2 hours ago
1
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
1
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.
$endgroup$
– Erik the Outgolfer
1 hour ago
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.
63 vs ?)?$endgroup$
– Benjamin Urquhart
2 hours ago
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.
63 vs ?)?$endgroup$
– Benjamin Urquhart
2 hours ago
1
1
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
1
1
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (
') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.$endgroup$
– Erik the Outgolfer
1 hour ago
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (
') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.$endgroup$
– Erik the Outgolfer
1 hour ago
add a comment |
15 Answers
15
active
oldest
votes
$begingroup$
Python 2, 69 bytes
lambda n:[chr(i)for i in range(32,127)if sum(map(int,bin(i)[2:]))==n]
Try it online!
$endgroup$
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
add a comment |
$begingroup$
05AB1E, 8 bytes
žQʒÇbSOQ
Try it online!
Explanation
žQ # push the printable ascii characters
ʒ # filter, keep elements whose
Ç # character code
b # converted to binary
SO # has a digit sum
Q # equal to the input
$endgroup$
add a comment |
$begingroup$
Python 2, 62 bytes
lambda n:[chr(i)for i in range(32,127)if bin(i).count('1')==n]
Try it online!
$endgroup$
add a comment |
$begingroup$
Japt, 9 bytes
;EƶXc¤è1
Try it
;EƶXc¤è1 :Implicit input of integer U
;E :Printable ASCII
Æ :Filter each X
¶ :Test U for equality with
Xc : Character code of X
¤ : To binary string
è1 : Count the 1s
$endgroup$
add a comment |
$begingroup$
Java 8, 131 bytes
Returns a java.util.stream.Stream<String>
n->java.util.stream.IntStream.range(32,127).filter(i->Long.toBinaryString(i).chars().map(c->c-48).sum()==n).mapToObj(c->(char)c+"")
Try it online!
Using HashSet, 135 bytes. Returns a Set<Object>:
n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Jelly, 8 bytes
ØṖOB§=ʋƇ
Try it online!
ØṖ printable ascii character list
OB to binary
§ popcount
= equal to input?
ʋƇ filter (implicitly output)
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 70 69 bytes
n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 70 bytes
FromCharacterCode/@Select[32~Range~126,s=#;Tr@IntegerDigits[#,2]==s&]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Gaia, 10 bytes
₵R⟪¤cbΣ=⟫⁇
Try it online!
| implicit input, n
₵R | push printable ascii
⟪ ⟫⁇ | filter the list where:
¤cbΣ | the sum of the code point in binary
= | is equal to n
$endgroup$
add a comment |
$begingroup$
Dyalog APL Extended, 24 bytes
⎕ucs a⌿⍨(+⌿2⊤a←32…126)∘=
Try it online!
25 bytes in dzaima/APL:
⎕ucs a⌿⍨(+/¨2⊤¨a←32…126)=
Try it online!
$endgroup$
add a comment |
$begingroup$
8088 assembly, IBM PC DOS, 35 34 bytes
Machine code:
be81 00ad 80ec 308a f433 db8a c8d0 e973 0143 75f9 3af3 7504 b40e cd10 403c 7e7e e8c3
Listing:
BE 0081 MOV SI, 081H ; address of DOS PSP command line
AD LODSW ; load space (20H) and value from command line
80 EC 30 SUB AH, '0' ; convert to numeric value
8A F4 MOV DH, AH ; AL = counter, DH = target value
CHR_LOOP:
33 DB XOR BX, BX ; clear bit counter
8A C8 MOV CL, AL ; current char to CL for test
BIT_LOOP:
D0 E9 SHR CL, 1 ; shift LSB to CF
73 01 JNC EBIT_LOOP ; if LSB = 0, don't increment
43 INC BX ; increment '1' bit counter
EBIT_LOOP:
75 F9 JNZ BIT_LOOP ; loop until CL = 0
3A F3 CMP DH, BL ; is current char the target value?
75 04 JNE ECHR_LOOP ; if not, do not display
B4 0E MOV AH, 0EH ; BIOS write char function
CD 10 INT 10H ; write AL to screen
ECHR_LOOP:
40 INC AX ; increment char loop
3C 7E CMP AL, 126 ; is char <= 126?
7E E8 JLE CHR_LOOP ; if so, keep looping
C3 RET ; return to DOS
Standalone PC DOS executable program, input number from command line. Output is displayed to console window.

Download and test ABCT.COM.
$endgroup$
add a comment |
$begingroup$
PowerShell, 83 bytes
param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})
Try it online!
Takes input $n, constructs a range from 32 to 126 and pulls out those numbers where |?{}: the number, converted ToString in base 2; converted toCharArray; grouped into 0s and 1s; taking the [1] index of that grouping; taking the .count thereof, and checking that it's -equal to our input $number. Those numbers are then cast as a char-array and left on the pipeline. Output is implicit, with newlines between elements.
$endgroup$
add a comment |
$begingroup$
Ruby, 48 bytes
->n{(' '..?~).select{|x|x.ord.digits(2).sum==n}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Perl 5 -a, 50 bytes
map{(sprintf'%b',$_)=~y/1//-$F[0]||say chr}32..126
Try it online!
$endgroup$
add a comment |
$begingroup$
Charcoal, 10 bytes
Φγ⁼Σ↨℅ι²Iθ
Try it online! Link is to verbose version of code. Explanation:
γ Predefined ASCII characters
Φ Filtered by
ι Current character's
℅ ASCII code
↨ Converted to base
² Literal 2
Σ Summed
⁼ Equals
θ First input
I Cast to integer
Implicitly printed
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "200"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183625%2fall-ascii-characters-with-a-given-bit-count%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
15 Answers
15
active
oldest
votes
15 Answers
15
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Python 2, 69 bytes
lambda n:[chr(i)for i in range(32,127)if sum(map(int,bin(i)[2:]))==n]
Try it online!
$endgroup$
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
add a comment |
$begingroup$
Python 2, 69 bytes
lambda n:[chr(i)for i in range(32,127)if sum(map(int,bin(i)[2:]))==n]
Try it online!
$endgroup$
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
add a comment |
$begingroup$
Python 2, 69 bytes
lambda n:[chr(i)for i in range(32,127)if sum(map(int,bin(i)[2:]))==n]
Try it online!
$endgroup$
Python 2, 69 bytes
lambda n:[chr(i)for i in range(32,127)if sum(map(int,bin(i)[2:]))==n]
Try it online!
answered 2 hours ago
NeilNeil
2,002324
2,002324
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
add a comment |
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
$begingroup$
That's exactly what I got when I golfed my ref implementation. +1
$endgroup$
– ElPedro
2 hours ago
add a comment |
$begingroup$
05AB1E, 8 bytes
žQʒÇbSOQ
Try it online!
Explanation
žQ # push the printable ascii characters
ʒ # filter, keep elements whose
Ç # character code
b # converted to binary
SO # has a digit sum
Q # equal to the input
$endgroup$
add a comment |
$begingroup$
05AB1E, 8 bytes
žQʒÇbSOQ
Try it online!
Explanation
žQ # push the printable ascii characters
ʒ # filter, keep elements whose
Ç # character code
b # converted to binary
SO # has a digit sum
Q # equal to the input
$endgroup$
add a comment |
$begingroup$
05AB1E, 8 bytes
žQʒÇbSOQ
Try it online!
Explanation
žQ # push the printable ascii characters
ʒ # filter, keep elements whose
Ç # character code
b # converted to binary
SO # has a digit sum
Q # equal to the input
$endgroup$
05AB1E, 8 bytes
žQʒÇbSOQ
Try it online!
Explanation
žQ # push the printable ascii characters
ʒ # filter, keep elements whose
Ç # character code
b # converted to binary
SO # has a digit sum
Q # equal to the input
answered 2 hours ago
EmignaEmigna
48.2k434147
48.2k434147
add a comment |
add a comment |
$begingroup$
Python 2, 62 bytes
lambda n:[chr(i)for i in range(32,127)if bin(i).count('1')==n]
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 62 bytes
lambda n:[chr(i)for i in range(32,127)if bin(i).count('1')==n]
Try it online!
$endgroup$
add a comment |
$begingroup$
Python 2, 62 bytes
lambda n:[chr(i)for i in range(32,127)if bin(i).count('1')==n]
Try it online!
$endgroup$
Python 2, 62 bytes
lambda n:[chr(i)for i in range(32,127)if bin(i).count('1')==n]
Try it online!
answered 1 hour ago
LynnLynn
51.2k899234
51.2k899234
add a comment |
add a comment |
$begingroup$
Japt, 9 bytes
;EƶXc¤è1
Try it
;EƶXc¤è1 :Implicit input of integer U
;E :Printable ASCII
Æ :Filter each X
¶ :Test U for equality with
Xc : Character code of X
¤ : To binary string
è1 : Count the 1s
$endgroup$
add a comment |
$begingroup$
Japt, 9 bytes
;EƶXc¤è1
Try it
;EƶXc¤è1 :Implicit input of integer U
;E :Printable ASCII
Æ :Filter each X
¶ :Test U for equality with
Xc : Character code of X
¤ : To binary string
è1 : Count the 1s
$endgroup$
add a comment |
$begingroup$
Japt, 9 bytes
;EƶXc¤è1
Try it
;EƶXc¤è1 :Implicit input of integer U
;E :Printable ASCII
Æ :Filter each X
¶ :Test U for equality with
Xc : Character code of X
¤ : To binary string
è1 : Count the 1s
$endgroup$
Japt, 9 bytes
;EƶXc¤è1
Try it
;EƶXc¤è1 :Implicit input of integer U
;E :Printable ASCII
Æ :Filter each X
¶ :Test U for equality with
Xc : Character code of X
¤ : To binary string
è1 : Count the 1s
answered 1 hour ago
ShaggyShaggy
19.1k21768
19.1k21768
add a comment |
add a comment |
$begingroup$
Java 8, 131 bytes
Returns a java.util.stream.Stream<String>
n->java.util.stream.IntStream.range(32,127).filter(i->Long.toBinaryString(i).chars().map(c->c-48).sum()==n).mapToObj(c->(char)c+"")
Try it online!
Using HashSet, 135 bytes. Returns a Set<Object>:
n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Java 8, 131 bytes
Returns a java.util.stream.Stream<String>
n->java.util.stream.IntStream.range(32,127).filter(i->Long.toBinaryString(i).chars().map(c->c-48).sum()==n).mapToObj(c->(char)c+"")
Try it online!
Using HashSet, 135 bytes. Returns a Set<Object>:
n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Java 8, 131 bytes
Returns a java.util.stream.Stream<String>
n->java.util.stream.IntStream.range(32,127).filter(i->Long.toBinaryString(i).chars().map(c->c-48).sum()==n).mapToObj(c->(char)c+"")
Try it online!
Using HashSet, 135 bytes. Returns a Set<Object>:
n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}
Try it online!
$endgroup$
Java 8, 131 bytes
Returns a java.util.stream.Stream<String>
n->java.util.stream.IntStream.range(32,127).filter(i->Long.toBinaryString(i).chars().map(c->c-48).sum()==n).mapToObj(c->(char)c+"")
Try it online!
Using HashSet, 135 bytes. Returns a Set<Object>:
n->new java.util.HashSet(){{for(int i=31;i++<126;add(Long.toBinaryString(i).chars().map(c->c-48).sum()==n?(char)i+"":""),remove(""));}}
Try it online!
edited 1 hour ago
answered 2 hours ago
Benjamin UrquhartBenjamin Urquhart
688111
688111
add a comment |
add a comment |
$begingroup$
Jelly, 8 bytes
ØṖOB§=ʋƇ
Try it online!
ØṖ printable ascii character list
OB to binary
§ popcount
= equal to input?
ʋƇ filter (implicitly output)
$endgroup$
add a comment |
$begingroup$
Jelly, 8 bytes
ØṖOB§=ʋƇ
Try it online!
ØṖ printable ascii character list
OB to binary
§ popcount
= equal to input?
ʋƇ filter (implicitly output)
$endgroup$
add a comment |
$begingroup$
Jelly, 8 bytes
ØṖOB§=ʋƇ
Try it online!
ØṖ printable ascii character list
OB to binary
§ popcount
= equal to input?
ʋƇ filter (implicitly output)
$endgroup$
Jelly, 8 bytes
ØṖOB§=ʋƇ
Try it online!
ØṖ printable ascii character list
OB to binary
§ popcount
= equal to input?
ʋƇ filter (implicitly output)
answered 1 hour ago
ZylviijZylviij
32014
32014
add a comment |
add a comment |
$begingroup$
JavaScript (Node.js), 70 69 bytes
n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 70 69 bytes
n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)
Try it online!
$endgroup$
add a comment |
$begingroup$
JavaScript (Node.js), 70 69 bytes
n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)
Try it online!
$endgroup$
JavaScript (Node.js), 70 69 bytes
n=>(g=x=>x>>7?'':Buffer((h=x=>x&&x%2+h(x>>1))(x)-n?0:[x])+g(x+1))(32)
Try it online!
edited 1 hour ago
answered 1 hour ago
ArnauldArnauld
81.9k798337
81.9k798337
add a comment |
add a comment |
$begingroup$
Wolfram Language (Mathematica), 70 bytes
FromCharacterCode/@Select[32~Range~126,s=#;Tr@IntegerDigits[#,2]==s&]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 70 bytes
FromCharacterCode/@Select[32~Range~126,s=#;Tr@IntegerDigits[#,2]==s&]&
Try it online!
$endgroup$
add a comment |
$begingroup$
Wolfram Language (Mathematica), 70 bytes
FromCharacterCode/@Select[32~Range~126,s=#;Tr@IntegerDigits[#,2]==s&]&
Try it online!
$endgroup$
Wolfram Language (Mathematica), 70 bytes
FromCharacterCode/@Select[32~Range~126,s=#;Tr@IntegerDigits[#,2]==s&]&
Try it online!
answered 2 hours ago
J42161217J42161217
14.3k21354
14.3k21354
add a comment |
add a comment |
$begingroup$
Gaia, 10 bytes
₵R⟪¤cbΣ=⟫⁇
Try it online!
| implicit input, n
₵R | push printable ascii
⟪ ⟫⁇ | filter the list where:
¤cbΣ | the sum of the code point in binary
= | is equal to n
$endgroup$
add a comment |
$begingroup$
Gaia, 10 bytes
₵R⟪¤cbΣ=⟫⁇
Try it online!
| implicit input, n
₵R | push printable ascii
⟪ ⟫⁇ | filter the list where:
¤cbΣ | the sum of the code point in binary
= | is equal to n
$endgroup$
add a comment |
$begingroup$
Gaia, 10 bytes
₵R⟪¤cbΣ=⟫⁇
Try it online!
| implicit input, n
₵R | push printable ascii
⟪ ⟫⁇ | filter the list where:
¤cbΣ | the sum of the code point in binary
= | is equal to n
$endgroup$
Gaia, 10 bytes
₵R⟪¤cbΣ=⟫⁇
Try it online!
| implicit input, n
₵R | push printable ascii
⟪ ⟫⁇ | filter the list where:
¤cbΣ | the sum of the code point in binary
= | is equal to n
answered 1 hour ago
GiuseppeGiuseppe
18k31155
18k31155
add a comment |
add a comment |
$begingroup$
Dyalog APL Extended, 24 bytes
⎕ucs a⌿⍨(+⌿2⊤a←32…126)∘=
Try it online!
25 bytes in dzaima/APL:
⎕ucs a⌿⍨(+/¨2⊤¨a←32…126)=
Try it online!
$endgroup$
add a comment |
$begingroup$
Dyalog APL Extended, 24 bytes
⎕ucs a⌿⍨(+⌿2⊤a←32…126)∘=
Try it online!
25 bytes in dzaima/APL:
⎕ucs a⌿⍨(+/¨2⊤¨a←32…126)=
Try it online!
$endgroup$
add a comment |
$begingroup$
Dyalog APL Extended, 24 bytes
⎕ucs a⌿⍨(+⌿2⊤a←32…126)∘=
Try it online!
25 bytes in dzaima/APL:
⎕ucs a⌿⍨(+/¨2⊤¨a←32…126)=
Try it online!
$endgroup$
Dyalog APL Extended, 24 bytes
⎕ucs a⌿⍨(+⌿2⊤a←32…126)∘=
Try it online!
25 bytes in dzaima/APL:
⎕ucs a⌿⍨(+/¨2⊤¨a←32…126)=
Try it online!
edited 1 hour ago
answered 1 hour ago
dzaimadzaima
16.1k22060
16.1k22060
add a comment |
add a comment |
$begingroup$
8088 assembly, IBM PC DOS, 35 34 bytes
Machine code:
be81 00ad 80ec 308a f433 db8a c8d0 e973 0143 75f9 3af3 7504 b40e cd10 403c 7e7e e8c3
Listing:
BE 0081 MOV SI, 081H ; address of DOS PSP command line
AD LODSW ; load space (20H) and value from command line
80 EC 30 SUB AH, '0' ; convert to numeric value
8A F4 MOV DH, AH ; AL = counter, DH = target value
CHR_LOOP:
33 DB XOR BX, BX ; clear bit counter
8A C8 MOV CL, AL ; current char to CL for test
BIT_LOOP:
D0 E9 SHR CL, 1 ; shift LSB to CF
73 01 JNC EBIT_LOOP ; if LSB = 0, don't increment
43 INC BX ; increment '1' bit counter
EBIT_LOOP:
75 F9 JNZ BIT_LOOP ; loop until CL = 0
3A F3 CMP DH, BL ; is current char the target value?
75 04 JNE ECHR_LOOP ; if not, do not display
B4 0E MOV AH, 0EH ; BIOS write char function
CD 10 INT 10H ; write AL to screen
ECHR_LOOP:
40 INC AX ; increment char loop
3C 7E CMP AL, 126 ; is char <= 126?
7E E8 JLE CHR_LOOP ; if so, keep looping
C3 RET ; return to DOS
Standalone PC DOS executable program, input number from command line. Output is displayed to console window.

Download and test ABCT.COM.
$endgroup$
add a comment |
$begingroup$
8088 assembly, IBM PC DOS, 35 34 bytes
Machine code:
be81 00ad 80ec 308a f433 db8a c8d0 e973 0143 75f9 3af3 7504 b40e cd10 403c 7e7e e8c3
Listing:
BE 0081 MOV SI, 081H ; address of DOS PSP command line
AD LODSW ; load space (20H) and value from command line
80 EC 30 SUB AH, '0' ; convert to numeric value
8A F4 MOV DH, AH ; AL = counter, DH = target value
CHR_LOOP:
33 DB XOR BX, BX ; clear bit counter
8A C8 MOV CL, AL ; current char to CL for test
BIT_LOOP:
D0 E9 SHR CL, 1 ; shift LSB to CF
73 01 JNC EBIT_LOOP ; if LSB = 0, don't increment
43 INC BX ; increment '1' bit counter
EBIT_LOOP:
75 F9 JNZ BIT_LOOP ; loop until CL = 0
3A F3 CMP DH, BL ; is current char the target value?
75 04 JNE ECHR_LOOP ; if not, do not display
B4 0E MOV AH, 0EH ; BIOS write char function
CD 10 INT 10H ; write AL to screen
ECHR_LOOP:
40 INC AX ; increment char loop
3C 7E CMP AL, 126 ; is char <= 126?
7E E8 JLE CHR_LOOP ; if so, keep looping
C3 RET ; return to DOS
Standalone PC DOS executable program, input number from command line. Output is displayed to console window.

Download and test ABCT.COM.
$endgroup$
add a comment |
$begingroup$
8088 assembly, IBM PC DOS, 35 34 bytes
Machine code:
be81 00ad 80ec 308a f433 db8a c8d0 e973 0143 75f9 3af3 7504 b40e cd10 403c 7e7e e8c3
Listing:
BE 0081 MOV SI, 081H ; address of DOS PSP command line
AD LODSW ; load space (20H) and value from command line
80 EC 30 SUB AH, '0' ; convert to numeric value
8A F4 MOV DH, AH ; AL = counter, DH = target value
CHR_LOOP:
33 DB XOR BX, BX ; clear bit counter
8A C8 MOV CL, AL ; current char to CL for test
BIT_LOOP:
D0 E9 SHR CL, 1 ; shift LSB to CF
73 01 JNC EBIT_LOOP ; if LSB = 0, don't increment
43 INC BX ; increment '1' bit counter
EBIT_LOOP:
75 F9 JNZ BIT_LOOP ; loop until CL = 0
3A F3 CMP DH, BL ; is current char the target value?
75 04 JNE ECHR_LOOP ; if not, do not display
B4 0E MOV AH, 0EH ; BIOS write char function
CD 10 INT 10H ; write AL to screen
ECHR_LOOP:
40 INC AX ; increment char loop
3C 7E CMP AL, 126 ; is char <= 126?
7E E8 JLE CHR_LOOP ; if so, keep looping
C3 RET ; return to DOS
Standalone PC DOS executable program, input number from command line. Output is displayed to console window.

Download and test ABCT.COM.
$endgroup$
8088 assembly, IBM PC DOS, 35 34 bytes
Machine code:
be81 00ad 80ec 308a f433 db8a c8d0 e973 0143 75f9 3af3 7504 b40e cd10 403c 7e7e e8c3
Listing:
BE 0081 MOV SI, 081H ; address of DOS PSP command line
AD LODSW ; load space (20H) and value from command line
80 EC 30 SUB AH, '0' ; convert to numeric value
8A F4 MOV DH, AH ; AL = counter, DH = target value
CHR_LOOP:
33 DB XOR BX, BX ; clear bit counter
8A C8 MOV CL, AL ; current char to CL for test
BIT_LOOP:
D0 E9 SHR CL, 1 ; shift LSB to CF
73 01 JNC EBIT_LOOP ; if LSB = 0, don't increment
43 INC BX ; increment '1' bit counter
EBIT_LOOP:
75 F9 JNZ BIT_LOOP ; loop until CL = 0
3A F3 CMP DH, BL ; is current char the target value?
75 04 JNE ECHR_LOOP ; if not, do not display
B4 0E MOV AH, 0EH ; BIOS write char function
CD 10 INT 10H ; write AL to screen
ECHR_LOOP:
40 INC AX ; increment char loop
3C 7E CMP AL, 126 ; is char <= 126?
7E E8 JLE CHR_LOOP ; if so, keep looping
C3 RET ; return to DOS
Standalone PC DOS executable program, input number from command line. Output is displayed to console window.

Download and test ABCT.COM.
edited 9 mins ago
answered 51 mins ago
gwaughgwaugh
2,4481519
2,4481519
add a comment |
add a comment |
$begingroup$
PowerShell, 83 bytes
param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})
Try it online!
Takes input $n, constructs a range from 32 to 126 and pulls out those numbers where |?{}: the number, converted ToString in base 2; converted toCharArray; grouped into 0s and 1s; taking the [1] index of that grouping; taking the .count thereof, and checking that it's -equal to our input $number. Those numbers are then cast as a char-array and left on the pipeline. Output is implicit, with newlines between elements.
$endgroup$
add a comment |
$begingroup$
PowerShell, 83 bytes
param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})
Try it online!
Takes input $n, constructs a range from 32 to 126 and pulls out those numbers where |?{}: the number, converted ToString in base 2; converted toCharArray; grouped into 0s and 1s; taking the [1] index of that grouping; taking the .count thereof, and checking that it's -equal to our input $number. Those numbers are then cast as a char-array and left on the pipeline. Output is implicit, with newlines between elements.
$endgroup$
add a comment |
$begingroup$
PowerShell, 83 bytes
param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})
Try it online!
Takes input $n, constructs a range from 32 to 126 and pulls out those numbers where |?{}: the number, converted ToString in base 2; converted toCharArray; grouped into 0s and 1s; taking the [1] index of that grouping; taking the .count thereof, and checking that it's -equal to our input $number. Those numbers are then cast as a char-array and left on the pipeline. Output is implicit, with newlines between elements.
$endgroup$
PowerShell, 83 bytes
param($n)[char[]](32..126|?{([convert]::ToString($_,2)|% t*y|group)[1].count-eq$n})
Try it online!
Takes input $n, constructs a range from 32 to 126 and pulls out those numbers where |?{}: the number, converted ToString in base 2; converted toCharArray; grouped into 0s and 1s; taking the [1] index of that grouping; taking the .count thereof, and checking that it's -equal to our input $number. Those numbers are then cast as a char-array and left on the pipeline. Output is implicit, with newlines between elements.
answered 1 hour ago
AdmBorkBorkAdmBorkBork
28k468241
28k468241
add a comment |
add a comment |
$begingroup$
Ruby, 48 bytes
->n{(' '..?~).select{|x|x.ord.digits(2).sum==n}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Ruby, 48 bytes
->n{(' '..?~).select{|x|x.ord.digits(2).sum==n}}
Try it online!
$endgroup$
add a comment |
$begingroup$
Ruby, 48 bytes
->n{(' '..?~).select{|x|x.ord.digits(2).sum==n}}
Try it online!
$endgroup$
Ruby, 48 bytes
->n{(' '..?~).select{|x|x.ord.digits(2).sum==n}}
Try it online!
answered 1 hour ago
G BG B
8,3161429
8,3161429
add a comment |
add a comment |
$begingroup$
Perl 5 -a, 50 bytes
map{(sprintf'%b',$_)=~y/1//-$F[0]||say chr}32..126
Try it online!
$endgroup$
add a comment |
$begingroup$
Perl 5 -a, 50 bytes
map{(sprintf'%b',$_)=~y/1//-$F[0]||say chr}32..126
Try it online!
$endgroup$
add a comment |
$begingroup$
Perl 5 -a, 50 bytes
map{(sprintf'%b',$_)=~y/1//-$F[0]||say chr}32..126
Try it online!
$endgroup$
Perl 5 -a, 50 bytes
map{(sprintf'%b',$_)=~y/1//-$F[0]||say chr}32..126
Try it online!
answered 50 mins ago
XcaliXcali
5,525521
5,525521
add a comment |
add a comment |
$begingroup$
Charcoal, 10 bytes
Φγ⁼Σ↨℅ι²Iθ
Try it online! Link is to verbose version of code. Explanation:
γ Predefined ASCII characters
Φ Filtered by
ι Current character's
℅ ASCII code
↨ Converted to base
² Literal 2
Σ Summed
⁼ Equals
θ First input
I Cast to integer
Implicitly printed
$endgroup$
add a comment |
$begingroup$
Charcoal, 10 bytes
Φγ⁼Σ↨℅ι²Iθ
Try it online! Link is to verbose version of code. Explanation:
γ Predefined ASCII characters
Φ Filtered by
ι Current character's
℅ ASCII code
↨ Converted to base
² Literal 2
Σ Summed
⁼ Equals
θ First input
I Cast to integer
Implicitly printed
$endgroup$
add a comment |
$begingroup$
Charcoal, 10 bytes
Φγ⁼Σ↨℅ι²Iθ
Try it online! Link is to verbose version of code. Explanation:
γ Predefined ASCII characters
Φ Filtered by
ι Current character's
℅ ASCII code
↨ Converted to base
² Literal 2
Σ Summed
⁼ Equals
θ First input
I Cast to integer
Implicitly printed
$endgroup$
Charcoal, 10 bytes
Φγ⁼Σ↨℅ι²Iθ
Try it online! Link is to verbose version of code. Explanation:
γ Predefined ASCII characters
Φ Filtered by
ι Current character's
℅ ASCII code
↨ Converted to base
² Literal 2
Σ Summed
⁼ Equals
θ First input
I Cast to integer
Implicitly printed
answered 33 mins ago
NeilNeil
83.2k745179
83.2k745179
add a comment |
add a comment |
If this is an answer to a challenge…
…Be sure to follow the challenge specification. However, please refrain from exploiting obvious loopholes. Answers abusing any of the standard loopholes are considered invalid. If you think a specification is unclear or underspecified, comment on the question instead.
…Try to optimize your score. For instance, answers to code-golf challenges should attempt to be as short as possible. You can always include a readable version of the code in addition to the competitive one.
Explanations of your answer make it more interesting to read and are very much encouraged.…Include a short header which indicates the language(s) of your code and its score, as defined by the challenge.
More generally…
…Please make sure to answer the question and provide sufficient detail.
…Avoid asking for help, clarification or responding to other answers (use comments instead).
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodegolf.stackexchange.com%2fquestions%2f183625%2fall-ascii-characters-with-a-given-bit-count%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
Are we allowed to return/print a list of the decimal ascii values or do we need to have them in the form of characters (eg.
63vs?)?$endgroup$
– Benjamin Urquhart
2 hours ago
1
$begingroup$
Must be the actual characters.
$endgroup$
– ElPedro
2 hours ago
1
$begingroup$
"the same type of quotes must be used for all inputs" Python, for example, uses single quotes (
') for the string representation of a string by default, but uses double quotes (") if the string contain a single quote and no double quotes. Not that this specific case will matter much, as you're probably better off returning the actual string instead of its representation, and you can still use single quotes in such a string for input anyway, but I feel it's worth mentioning here.$endgroup$
– Erik the Outgolfer
1 hour ago