Java将十进制转换为8位二进制(Java convert from decimal to 8-bit binary)

我写了简单的java代码来从十进制转换为8位二进制:抱歉这个愚蠢的问题

1 int dec=1;

2 String result="";

3 String reverse = "";

4 while(dec!=0)

5 {

6 result+=dec%2;

7 dec=dec/2;

8 }

9 //8-Bit Binary

10 System.out.println("dec length is :"+result.length());

// int j = 8-result.length(); // for(int i = 0; i

11 for(int i=0;i

12 {

13 result+=0;

14 System.out.println("*");

15 }

16 System.out.println("8-Bit before reverse:"+result);

17 for(int i = result.length() - 1; i >= 0; i--)

18 {

19 reverse = reverse + result.charAt(i);

20 }

21 System.out.println("8-bit representation:"+reverse);

结果为:dec长度为:1 * * * *反向前8位:10000 8位表示:00001

但是当我删除第13行(结果+ = 0;)编译器打印7星号(*),这是什么原因? 结果的长度将每次更新

i wrote simple java code to convert from decimal to 8-bit binary: sorry for this stupid question

1 int dec=1;

2 String result="";

3 String reverse = "";

4 while(dec!=0)

5 {

6 result+=dec%2;

7 dec=dec/2;

8 }

9 //8-Bit Binary

10 System.out.println("dec length is :"+result.length());

// int j=8-result.length(); // for(int i=0;i

11 for(int i=0;i

12 {

13 result+=0;

14 System.out.println("*");

15 }

16 System.out.println("8-Bit before reverse:"+result);

17 for(int i = result.length() - 1; i >= 0; i--)

18 {

19 reverse = reverse + result.charAt(i);

20 }

21 System.out.println("8-bit representation:"+reverse);

the result was : dec length is :1 * * * * 8-Bit before reverse:10000 8-bit representation:00001

but when i remove line 13 (result+=0;) the compiler print 7 asterisk(*), what is the reason for that? length of result will update every time

原文:https://stackoverflow.com/questions/48952307

更新时间:2019-12-21 05:30

最满意答案

这是因为你的for循环的结果:

for(int i=0;i

其中的行动:

result+=0;

增加结果的长度使得8-result.length()的结果更小(8 - 2 = 6,8 - 3 = 5 ...),因此循环执行的次数更少。

It is because of the confition of your for loop:

for(int i=0;i

And the action in it:

result+=0;

Increasing the length of result makes the result of 8-result.length() smaller (8 - 2 = 6, 8 - 3 = 5 ...), hence the loop being executed less times.

相关问答

首先, main()的循环没有意义。 调用函数一次,完成。 str是一个16元素char数组,其元素可以通过索引0至15访问。 您访问了第16个,导致未定义的行为。 printf %s需要一个null结束的char数组。 你没有提供。 这是未定义的行为了。 该函数不返回任何内容。 使返回类型void 。 反向打印二进制表单正在完成。 确保这是你想要的。 您应该反向打印数组。 for循环完成后,您将打印它。 for(int in = BIT-1; in >= 0; in--){

printf

...

打印此页面,悬挂在显示器上方 http://graphics.stanford.edu/~seander/bithacks.html 但它大致相似 if(value&(1 << bit_number)) Print this page out, hang above your monitor http://graphics.stanford.edu/~seander/bithacks.html But it's roughly something like if ( value & (1 << b

...

这是因为你的for循环的结果: for(int i=0;i

其中的行动: result+=0;

增加结果的长度使得8-result.length()的结果更小(8 - 2 = 6,8 - 3 = 5 ...),因此循环执行的次数更少。 It is because of the confition of your for loop: for(int i=0;i

And the action in

...

您可以使用按位运算符。 例如。 var number = 54;

if (number & 1) { $('#mon').attr('checked', 'checked'); }

if (number & 2) { $('#tue').attr('checked', 'checked'); }

if (number & 4) { $('#wed').attr('checked', 'checked'); }

if (number & 8) { $('#thu').attr('checked

...

我认为你需要 m = reshape(dec2bin(typecast(b(:),'uint8'),8).',1,[]);

请注意,这会读取Matlab标准的列 - 主要顺序(向下,然后跨越)。 然后你可以转换回来 b_recovered = reshape(typecast(uint8(bin2dec(reshape(m,8,[]).')),'double'),size(b));

由于typecast不改变底层数据的情况下转换数据类型,因此这个过程不会降低准确性。 例如, >> b = ra

...

在C ++中,最简单的方法可能是使用std::bitset : #include

#include

int main() {

int x = 5;

std::bitset<8> bin_x(x);

std::cout << bin_x;

return 0;

}

结果: 00000101 In C++, the easiest way is probably to use a std::bitset: #include

...

假设二进制整数的长度不超过8位。 调用BinToDec() char Input[9];

cout << "Please enter the 8-bit binary:\n";

cin >> (Input);

cout << BinToDec(Input);

你需要创建一个至少有8 + 1个元素的char数组,char数组字符串的最后一个元素总是0。 int BinToDec(char* BinIn){

int intOut = 0;

intOut = intOut + (Bi

...

首先,您需要为多余的表示选择偏见。 由于通常选择等于可用量程的一半的偏置,对于8位,我们将选择-127作为偏置。 这意味着您有8位将被解释为无符号整数,并且将从该整数中减去127以获得最终结果。 因此,既然我们有 final = unsigned + bias

final = -17

bias = -127

我们结束了 unsigned = final - bias = -17 - (-127) = 110

因此-17的超出-127表示将是01101110(十进制110)。 First of

...

你的问题主要是binaryList = list(str(binary)) 。 str(0b010001110)如您所料,返回'142' ,而不是'0b101010' 。 因此, binaryList是['1', '4', '2'] 。 巧合的是, 1 * 2**2 + 4 * 2**1 + 2等于14,这给人的印象是你的功能不处理最后一位数。 但是,如果你正在运行,你的功能是0b101010作为输入,你得到10 。 将二进制表示形式化为字符串的解决方案是传递给format : list("{0:

...

您可能不清楚temp += '0'正在做什么。 它不是一个字符串,而是它偏移了一个未初始化的指针,并且当你实际使用它时,它是temp2[j] 。 要使用我认为你想要的字符串,请查看strcat() 。 我会把它扔掉并重新开始。 不要操纵字符串中的字符,只需将字符串转换为二进制字符串即可。 编写一些代码来将输入字符串从第一个字符移到最后一个字符。 保留答案的result整数,最初为0 。 当你遍历字符串时,移动result << 1 ,然后如果你看到一个字符'1' ,则在result添加数字1 。

...

计算机十进制转为八位二进制,Java将十进制转换为8位二进制(Java convert from decimal to 8-bit binary)...相关推荐

  1. 十进制点分IP转换为32位二进制IP

    十进制点分IP转换为32位二进制IP #include<iostream> using namespace std; int main() {char ch[33];char s[100] ...

  2. C++ 十进制点分IP转换为32位二进制IP

    题目内容: 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块 ...

  3. 十进制点分IP转换为32位二进制IP(C++)

    题目详情 编写程序,将十进制点分的IP转换为32位二进制IP地址.程序要能验证输入的十进制点分IP地址的合法性.用户输入的IP不和法时,输出"data error". 请使用模块化 ...

  4. 将一个整数转换为32位数据(java实现)

    将一个整数转换为32位数据(java实现) 将一个整数转换为二进制数据并且打印出来,都知道计算机底层使用32为数据来存储数据的.那么如何将一个整数通过代码的形式打印出来. 首先肯定需要用到位运算.通过 ...

  5. 整型转换为32位二进制字符串

    记录下整型转换为32位二进制字符串的两种方式. 一.返回string 类型 char digits[] = {'0','1','2','3','4','5','6','7','8','9','a',' ...

  6. 29转换为8位二进制的转换过程

    我们可以使用一种叫做"除2取余法"的方法来将数字29转换为8位二进制. 首先,我们将29除以2,得到一个商14和一个余数1.这意味着29的二进制表示的最低有效位为1. 然后,我们将 ...

  7. c# php md5 32位加密,C#实现将32位MD5摘要串转换为128位二进制字符串的方法

    本文实例讲述了C#实现将32位MD5摘要串转换为128位二进制字符串的方法.分享给大家供大家参考,具体如下: 将32为MD5摘要串转换为128位二进制字符串: /// /// 将字符串转成二进制 // ...

  8. java enum int 转换为枚举_关于java:从枚举序号转换为枚举类型

    我有一个枚举类型ReportTypeEnum,它在所有类的方法之间传递,但是我需要在URL上传递它,所以我使用序数方法来获取int值.在我把它放到我的另一个JSP页面之后,我需要将它转换回一个Repo ...

  9. matlab二进制乘法器,用74ls138实现2位二进制乘法器 - 数字电路图

    用74ls138实现2位二进制乘法器 74LS138为3线-8线译码器,共有54/74S138和 54/74LS138两种线路结构型式,其工作原理如下: 当一个选通端(G1)为高电平,另两个选通端(/ ...

最新文章

  1. C++const关键字作用
  2. 打包phar文件过大的问题。
  3. 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...
  4. 华为Mate 30 Pro保护壳生产线谍照曝光:长方形摄像头模组实锤?
  5. DWR第五篇之文件上传
  6. 几个好用的makefile 几乎可以不用修改
  7. mapper mysl实现批量插入 更新
  8. windows下python访问ipv6报错
  9. php---兄弟连的php培训视频的总结(1)
  10. 根据身份证号码获取身份证信息(省市县、出生日期、性别)
  11. Oracle中的next_day(date,char)
  12. 机械转行java自学经历,零基础学java,血泪总结的干货
  13. php配置设置时区,php如何设置时区
  14. 自适应学习系统_如何建立适应性学习系统
  15. android 旋转屏幕 不重走生命周期,屏幕旋转后Activity生命周期
  16. Vim 利剑常磨,见血封喉 1
  17. 2022中国公司注册亚马逊欧洲站卖家资质审核(KYC)所需资料料及要求!
  18. ddr3ddr4 lpddr4速率_超极本的LPDDR3与笔记本的DDR4性能差多少
  19. ffmpeg-实现视频 metadata(moov) 前置
  20. 数学物理方程讲义(姜礼尚)弦振动方程

热门文章

  1. 【行业科普】一篇文读懂四大、咨询、投行、PE
  2. 台式计算机耳机有杂音怎么办,小编教你解决电脑耳机有噪音和杂音怎么办几个方法!...
  3. 学计算机的会excel,轻松学电脑开机即会--EXCEL电子表格商务办公应用(附光盘)
  4. 【高质量编程指南笔记】
  5. 滤波电容的大小的选取
  6. oracle设置组合主键,Oracle主键的设置
  7. js实现GeoHash算法
  8. IOS打开Micosoft文档
  9. 傅里叶变换的相关公式
  10. SendMessage和PostMessage发送消息(不同进程传递字符串)