推 sunneo:Value |= ( ~((~0)>>n) ) 61.227.229.51 12/16 00:14
→ sunneo:這樣該可以把0~n bit都set為1吧 61.227.229.51 12/16 00:15
→ patterson:sign extension是要設MSB到n不是LSB到n 59.124.160.118 12/16 09:02
→ patterson:而且還要先check第n-bit是否為1 59.124.160.118 12/16 09:03
推 scaaa:你自己不是有答案了? 140.116.82.178 12/16 09:14
→ scaaa:int x; (x << n) >> n; 140.116.82.178 12/16 09:15
推 sunneo:我第一行寫的確實是MSB到n啊 61.227.228.73 12/16 09:18
→ sunneo:你只要(signed)並且shift就可以達到了 61.227.228.73 12/16 09:18
→ sunneo:歐...我打0~n 確實是LSB到n,應該是n~MSB 61.227.228.73 12/16 09:19
→ patterson:呀,感謝scaaa。將變數轉成sign就完成了 59.124.160.118 12/16 11:04
→ patterson:但是perl就麻煩了,抓不準它的變數型別. 59.124.160.118 12/16 11:05