日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

打印hello world java_java – 如何打印“hello world”?

發布時間:2023/12/20 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 打印hello world java_java – 如何打印“hello world”? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數字4946144450195624適合64位,其二進制表示為:

10001100100100111110111111110111101100011000010101000

該程序對每5位組的字符進行解碼,從右到左

00100|01100|10010|01111|10111|11111|01111|01100|01100|00101|01000

d | l | r | o | w | | o | l | l | e | h

5位編碼

對于5位,可以表示2 5 = 32個字符。英語字母表包含26個字母,這為32 – 26 = 6個符號留出空間

除了字母。使用這種編碼方案,您可以擁有所有26(一個案例)英文字母和6個符號(它們之間的空格)。

算法描述

在for-loop從組跳到組的情況下,5位組被隔離,并且該數字與語句l& l中的掩碼3110 = 11111 2相乘。 31

現在代碼將5位值映射到其對應的7位ascii字符。這是棘手的部分,檢查小寫的二進制表示

字母表中的字母:

ascii | ascii | ascii | algorithm

character | decimal value | binary value | 5-bit codification

--------------------------------------------------------------

space | 32 | 0100000 | 11111

a | 97 | 1100001 | 00001

b | 98 | 1100010 | 00010

c | 99 | 1100011 | 00011

d | 100 | 1100100 | 00100

e | 101 | 1100101 | 00101

f | 102 | 1100110 | 00110

g | 103 | 1100111 | 00111

h | 104 | 1101000 | 01000

i | 105 | 1101001 | 01001

j | 106 | 1101010 | 01010

k | 107 | 1101011 | 01011

l | 108 | 1101100 | 01100

m | 109 | 1101101 | 01101

n | 110 | 1101110 | 01110

o | 111 | 1101111 | 01111

p | 112 | 1110000 | 10000

q | 113 | 1110001 | 10001

r | 114 | 1110010 | 10010

s | 115 | 1110011 | 10011

t | 116 | 1110100 | 10100

u | 117 | 1110101 | 10101

v | 118 | 1110110 | 10110

w | 119 | 1110111 | 10111

x | 120 | 1111000 | 11000

y | 121 | 1111001 | 11001

z | 122 | 1111010 | 11010

在這里你可以看到我們想要映射的ASCII字符從第7和第6位(11xxxxx2)開始(除了空格,只有第6位),你可以或5位

編碼96(9610 = 11000002),這應該足以做映射,但這不會為空間工作(darn空間!)

現在我們知道必須特別小心處理空間與其他字符同時。為此,代碼將第7位(但不是第6位)置1

提取的5位組具有OR 64 64 10 = 1000000 2(1& 31 | 64)。

到目前為止,5位組的形式是:10xxxxx 2(空間將是1011111 2 = 9510)。

如果我們可以將空間映射為0而不影響其他值,那么我們可以打開第6位,應該全部。

這里是mod 95部分來演奏,空間是1011111 2 = 95 10,使用mod

操作(1& 31 | 64)%95)只有空間返回到0,此后,代碼通過加上3210 = 100000 2打開第6位

((1& 31 | 64)%95)32)將5位值轉換為有效的ASCII字符

isolates 5 bits --+ +---- takes 'space' (and only 'space') back to 0

| |

v v

(l & 31 | 64) % 95) + 32

^ ^

turns the | |

7th bit on ------+ +--- turns the 6th bit on

以下代碼執行逆過程,給定一個小寫字符串(最多12個字符),返回64位長的值,可以與OP的代碼一起使用:

public class D {

public static void main(String... args) {

String v = "hello test";

int len = Math.min(12, v.length());

long res = 0L;

for (int i = 0; i < len; i++) {

long c = (long) v.charAt(i) & 31;

res |= ((((31 - c) / 31) * 31) | c) << 5 * i;

}

System.out.println(res);

}

}

總結

以上是生活随笔為你收集整理的打印hello world java_java – 如何打印“hello world”?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。