gpt4 book ai didi

c++ - 如何在C++中输出变量的二进制值

转载 作者:行者123 更新时间:2023-11-30 00:41:21 26 4
gpt4 key购买 nike

我的 C++ 编程课上有一个家庭作业要编写一个函数来输出变量值的二进制值。

例如,如果我将“a”的值设置为一个字符,我应该得到“a”输出的二进制值。

我的 C++ 教授并不是世界上最伟大的教授,使用他给我们的神秘示例,我很难让我的代码正常工作。现在,无论我设置什么,我的代码都只输出一个二进制值 11111111(除非它为 NULL,然后我得到 00000000)。

这是我的代码:

#include <iostream>

#define useavalue 1

using namespace std;

void GiveMeTehBinary(char bin);

int main(){

#ifdef useavalue
char b = 'a';
#else
char b = '\0';
#endif

GiveMeTehBinary(b);

system("pause");

return 0;

}

void GiveMeTehBinary(char bin){

long s;

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

s = bin >> i;

cout << s%2;

}

cout << endl << endl;


}

在此先感谢大家。你总是非常乐于助人:)

编辑:现在已修复 - 非常感谢 :D 问题是我没有存储位移位的值。我已将代码更新为上面的工作状态。

最佳答案

编译器应该警告您代码中某些无效的语句1。考虑

bin >> i;

这什么都不做,因为您没有将此操作的结果存储在任何地方。

此外,为什么将 tehbinary 声明为数组?您所使用的只是一个 元素(当前元素)。只存储当前位就足够了。

一些其他的东西:

  • NULL 只能与指针值一起使用。您的用法有效,但不是预期的用法。您真正想要的是一个空字符,即 '\0'
  • 请使用真实的描述性名称。我清楚地记得我自己使用名为 tehdataz 等的变量,但这确实使代码难以阅读,一旦最初的有趣消失,当您尝试阅读您的代码时,无论对您还是对阅读代码的人来说都是烦人的给你的代码打分。
  • 正确格式化代码有助于理解很多东西:使缩进符合逻辑和一致。

1 如果您使用的是 g++,请始终传递编译器标志 -Wall -Wextra 以获得有关代码的有用诊断。

关于c++ - 如何在C++中输出变量的二进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3813766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com