From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: write strings with bits Date: Tue, 18 Apr 2023 19:08:44 +0200 Message-ID: <87cz4186eb.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="1204"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:rPdLrL09d08Mfp6VNf/bmw1DoSM= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Apr 18 20:21:14 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1popx3-000Acd-UT for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 18 Apr 2023 20:21:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1popwc-0001Dp-EW; Tue, 18 Apr 2023 14:20:46 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1poop7-0004X9-TS for help-gnu-emacs@gnu.org; Tue, 18 Apr 2023 13:08:57 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1poop6-0001pP-2f for help-gnu-emacs@gnu.org; Tue, 18 Apr 2023 13:08:57 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1poop1-0003KA-6p for help-gnu-emacs@gnu.org; Tue, 18 Apr 2023 19:08:51 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Tue, 18 Apr 2023 14:20:44 -0400 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:143298 Archived-At: Some fun code to write strings in binary ... Cred to whoever wrote that at codereview. There are more logical binary operands BTW, but don't look for "logor", it is called `logior' ... ;;; -*- lexical-binding: t -*- ;; ;; cred: ;; https://codereview.stackexchange.com/q/186840 ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/str-to-bits.el (require 'esh-util) (defun number-to-bitstring (num) (let ((s "")) (while (> num 0) (setq s (concat (number-to-string (logand num 1)) s)) (setq num (ash num -1)) ) (if (string= "" s) "0" s) )) (defalias 'dec2bits #'number-to-bitstring) ;; (dec2bits ?a) ; 1100001 (defun str-to-bits (str &optional delim) (interactive "sString: ") (or delim (setq delim " ")) (let ((bits)) (dolist (c (string-to-list str) (mapconcat #'eshell-stringify bits delim)) (push (number-to-bitstring c) bits) ))) ;; (str-to-bits "What's up Emacs community?") ; 111111 1110000 1110101 [...] (provide 'str-to-bits) -- underground experts united https://dataswamp.org/~incal