使用移位操作、位與操作把十進位制轉換為二進位制
針對上篇文章c++的寫法,改寫成java的寫法,測試發現有下面兩種,但是現在我還不能完全理解,暫時記錄,後面理解後再詳細註解。
public class BaseTest { public static void main(String[] args) { char[] rst = ConvertTo2String(107); System.out.println(rst); char[] rst2 = ConvertTo2String2(107); System.out.println(rst2); // 100101110 == 302 // 01101011 == 107 } public static char[] ConvertTo2String(long number) { char[] output = new char[33]; int i = 0; for (; i < 32; i++) { output[i] = (char) (number & (1 << 31 - i)); output[i] = (char) (output[i] >> 31 - i); output[i] = (output[i] == 0) ? '0' : '1'; } output[i] = '\0'; return output; } public static char[] ConvertTo2String2(long number) { char[] output = new char[33]; long tmp = 0L; int i = 0; for (; i < 32; i++) { tmp = number & (1 << 31 - i); System.out.print((1 << 31 - i) + "~"); System.out.println(tmp); output[i] = (tmp == 0) ? '0' : '1'; } output[i] = '\0'; return output; } }
相關推薦
使用移位操作、位與操作把十進位制轉換為二進位制
針對上篇文章c++的寫法,改寫成java的寫法,測試發現有下面兩種,但是現在我還不能完全理解,暫時記錄,後面理解後再詳細註解。 public class BaseTest { public stat
將十進位制轉換為二進位制、八進位制、十六進位制
將十進位制轉換為其它進位制時比較複雜,整數部分和小數部分的演算法不一樣。 1) 整數部分 十進位制整數轉換為 N 進位制整數採用“除 N 取餘,逆序排列”法。具體做法是: 將 N 作為除數,用十進位制整數除以 N,可以得到一個商和餘數; 保留餘數,用商繼續除以 N,又得到一個新的商和餘數;
c語言程式設計 把十進位制轉換為十六進位制
#include<stdio.h> main() { int u10; char u16[10]; int w=0,a,b,i; printf("請輸入一個數字-->"); s
用位運算實現十進位制轉換為二進位制
程式碼如下: 1 #include <iostream> //將十進位制數轉化為二進位制數,位運算的取位操作 2 using namespace std; 3 int main() 4 { 5 unsigned short i; 6
Python 十進位制轉換為二進位制 高位補零
這裡需要使用內建函式''.format() 高位補零 >>> a = 2 >>> b = '{:08b}'.format(a) 輸出結果為八位二進位制,且高位補零。 高位不補零 >>> b = '{:8b}'.for
Python下十進位制轉換為二進位制
前兩天,在讀高中的姨弟找我,說他資訊考試有一道題不會,要在Python下把十進位制轉換為二進位制,問我會不會,我沒學過Python,C只學會了皮毛,靠著一丁點對程式設計的瞭解,網上查了查,總算拼湊出來了。PS:Python下是有現成函式的,只不過不符合題目要求,所以沒用程式碼
C語言實現十進位制轉換為二進位制
/* * 檔名:二進位制轉換.c * 功能描述:把10進位制數轉換為二進位制數 * 編寫人:王廷雲 * 編寫日期:2017-1-10 */ #include <stdio.h> #
用C語言程式實現十進位制轉換為二進位制
題目: 寫一個函式,輸入一個10進位制數,輸出它的2進位制,例如:輸入9,輸出1001 思路: 十進位制數轉換為其他進位制時,轉換成幾進位制就除以幾進位制求餘。 程式碼: #include "stdio.h" #define N 100 int main() {
Java 位運算(移位、位與、或、異或、非)(轉)
位與 異或 print 我們 如果 運行 str 換算 system public class Test { public static void main(String[] args) { // 1、左移( << ) // 0000 0000 00
Java 位運算(移位、位與、或、異或、非)與邏輯運算
高效率 邏輯與 才會 system 區別 span get 右移 邏輯 java 位運算包括:左移( << )、右移( >> ) 、無符號右移( >>> ) 、位與( & ) 、位或( | )、位非( ~ )、位異或( ^
計算機負數與正數的按位與操作
負數的按位與運算: 按位與運算是按照資料的內部二進位制形式進行運算的。若是兩個負數,則是按二進位制補碼形式進行按位與。所得結果若用有符號整型變數儲存,則內部形式仍看作二進位制補碼。如果用格式符%d輸出,輸出結果為十進位制真值(不應該稱為十進位制原碼)。 例如:
Java、Oracle、JSP中的時間轉換、獲取與操作
Java中的時間格式轉換:說在前面:1.UTC:協調世界時,又稱世界標準時間或世界協調時間,簡稱UTC(從英文“Coordinated Universal Time”/法文“TempsUniversel Coordonné”而來),是最主要的世界時間標準2.CST:北京時間,
Docker的使用(二、安裝與操作)
(二)安裝與操作 1. 在Ubuntu中安裝Docker 更新ubuntu的apt源索引 sudo apt-get update 安裝包允許apt通過HTTPS使用倉庫 sudo apt-get install \ apt-transport-http
ORACLE---Unit02: Oracle字符串操作 、 Oracle數值操作 、 Oracle日期操作 、 空值操作
其它 sca 需要 一個 rtrim unit con ava 空字符 ---DQL:數據查詢語句 ---SELECT語句中必須包含至少兩個字句,分別是SELECT字句與FROM字句。 ---SELECT子句用來指定要查詢的字段, ---FROM子句用來定制數據來源的表。
開啟運維之路之第 7 篇——RedisDesktopManager使用、Keys通用操作、Java程式碼操作基本的Redis
RedisDesktopManager下載地址:Redis桌面管理工具官方下載地址 安裝好,直接雙擊開啟。 說明:我本機的 IP 由於使用公司的 IP ,經常會變動,但不影響連線 Linux 虛擬機器。 現在發現個問題,無法連線到 Redis 。 解決過程: ①Redi
MySQL基礎(二)圖形視窗操作、命令指令碼操作
使用圖形視窗連線 下發windows的navicat 點選“連線”彈出視窗,按照提示填寫連線資訊,如下圖 連線成功後,會在連線名稱下面顯示出當前的資料庫 雙擊選中資料庫,就可以編輯此資料庫 下次再進入此軟體時,通過雙擊完成連線、編輯操作 資料庫操作
PHP實現的連貫操作、鏈式操作例項
PHP中的連貫操作看起來的確很酷,也非常的方便程式碼的閱讀,當然了必須是在OOP中用才行,在過程化的程式中,就沒有必要用這種方法了。有實現這個方法的有用_CALL來實現的,下面的這個例子,則不是用_call的 /* * SQL語句組合例項類,始發文章web開發筆記 * 學習用,非專業
php使用新浪雲Storage儲存上傳下載檔案,建立bucket、Bucket 操作、Object 上傳操作,Object 下載操作,Object 刪除操作、Object 複製操作,生成一個外網能夠訪
<?php //新浪雲 Storage PHP use use sinacloud\sae\Storage as Storage; // 方法一:在新浪雲執行環境中時可以不傳認證資訊,預設會從應用的環境變數中取 $s = new Storage();
nodejs-第四天-使用MongoDB、shell增刪改查操作、聚集集合操作
nodejs-第四天-MongoDB MongoDB安裝 1. Mac系統上安裝 使用Homebrew安裝 $ brew updata // 更新Homebrew的package資料庫 $ brew install mongodb 2.
python(十進位制轉換成二進位制、八進位制、十六進位制)(正則)
#coding=utf-8 import re print("十進位制轉換成二進位制、八進位制、十六進位制") num = input("請輸入一個十進位制的整數:") pattern = re.compile(r'[^0-9]+') if(re.search(pattern,