1. 程式人生 > >使用移位操作、位與操作把十進位制轉換為二進位制

使用移位操作、位與操作把十進位制轉換為二進位制

針對上篇文章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輸出,輸出結果為十進位制真值(不應該稱為十進位制原碼)。  例如:

JavaOracleJSP中的時間轉換獲取操作

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儲存上傳下載檔案,建立bucketBucket 操作Object 上傳操作,Object 下載操作,Object 刪除操作Object 複製操作,生成一個外網能夠訪

<?php //新浪雲 Storage PHP use use sinacloud\sae\Storage as Storage; // 方法一:在新浪雲執行環境中時可以不傳認證資訊,預設會從應用的環境變數中取 $s = new Storage();

nodejs-第四天-使用MongoDBshell增刪改查操作聚集集合操作

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,