首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将二进制数字向左移动

如何将二进制数字向左移动
EN

Stack Overflow用户
提问于 2014-03-31 15:22:45
回答 1查看 550关注 0票数 3

简单的事情是,如何打印一个二进制数字并将其移到左边?

代码语言:javascript
复制
$num = 0b00000010001;
for(0..6){
    print sprintf ("%b",$num), "\n";
    $num<<1;
}

这个代码的问题:它没有在1之前打印0!印刷品的数量仅为"10001",不会改变数字。

最后的产出应是:

代码语言:javascript
复制
00000010001
00000100010
00001000100
00010001000
00100010000
01000100000
10001000000
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-31 15:25:59

只需告诉格式化程序,在任何情况下都需要精确地打印N (11)位数字,0应该用作填充符号:

代码语言:javascript
复制
my $num = 0b00000010001;
for (0..6) {
    printf("%011b\n", $num);
    $num <<= 1;
}

Demo

这里有两个侧面

  • 首先,做print sprintf显然是多余的:printf将很好地取代它。
  • 其次,在原始代码中,您忘记了将结果重新分配给$num。如果您使用use warnings实用程序启动脚本(如我的演示中所示),您就会被Useless use of left bitshift (<<) in void context...告知
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22765579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档