《Java puzzlers》里关于 sign extension 的示例
PHP中文网
PHP中文网 2017-04-18 09:45:37
0
3
472

原文:
If you are converting from a byte value b to a char and you don’t want sign
extension, you must use a bit mask to suppress it. This is a common idiom, so no
comment is necessary:

char c = (char) (b & 0xff);

没有get到 sign extension的含义!以及为什么这么做就没有sign extension

PHP中文网
PHP中文网

认证0级讲师

membalas semua(3)
黄舟

Pertama sekali, char ialah bait 16-bit dan bait 8-bit. Terdapat bentuk negatif char Jika anda melakukan anjakan langsung, bait negatif akan terus berkembang mengikut tanda pertama bit untuk menjadi 111111111xxxxxx Jika anda melakukan sedikit DAN, masalah ini tidak akan berlaku

巴扎黑

Saya faham ia adalah bit simbol

左手右手慢动作

Apabila menjalankan operasi bit, kecuali jenis panjang, jenis lain akan ditukar secara automatik kepada jenis int bermakna ini tidak menggunakan bit pertama untuk memadankan bit untuk ditukar kepada char tiada jenis unsigned dalam Java, dan julat char Ia adalah -2^16-2^16-1, char ialah dua bait, contohnya, bait b=-1, dan bit pertama digunakan sebagai bit tanda char c= (char)b, maka bit binari c (pelengkap) dinyatakan sebagai 1111 1111 1111 1111 Iaitu -1, dua bait mewakili -1 jika bit pertama tidak digunakan sebagai bit tanda, seperti char c=(char )(b&0xff), maka bit perduaan (pelengkap) c dinyatakan sebagai 0000 0000 1111 1111 Iaitu 255, bait dua aksara mewakili 255.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!