无符号字符数组问题 我有一个C++代码,它移位一个字体。我正在尝试用Python代码来做同样的事情。谢谢你的帮助。 我正在重新编写我的问题,以便将其简化为我认为需要的内容。 非常感谢你们的时间和指示 在C++中,我可以创建: unsigned char vals[8][8] = {0};

无符号字符数组问题 我有一个C++代码,它移位一个字体。我正在尝试用Python代码来做同样的事情。谢谢你的帮助。 我正在重新编写我的问题,以便将其简化为我认为需要的内容。 非常感谢你们的时间和指示 在C++中,我可以创建: unsigned char vals[8][8] = {0};,python,c++,Python,C++,这给了我一个8 X 8的数组,里面填充了0。。。表示VAL[0][0]的{0} 而数组将转到VAL[7][7] 在我的C++代码中,我用位元值填充了VARS数组,然后我移值你可能想使用 NoMPy < /C>和指定类型的NDAREL——例如 import numpy as np np.full(shape=8, fill_value=0, dtype=np.int8) # or np.zeros() 与默认的Pythonint处理相反(正如iBug在评论中指出的那样,它是无限长的),您将得到

这给了我一个8 X 8的数组,里面填充了0。。。表示VAL[0][0]的{0}

而数组将转到VAL[7][7]


在我的C++代码中,我用位元值填充了VARS数组,然后我移值

你可能想使用<代码> NoMPy < /C>和指定类型的NDAREL——例如

import numpy as np

np.full(shape=8, fill_value=0, dtype=np.int8) # or np.zeros()

与默认的Python
int
处理相反(正如iBug在评论中指出的那样,它是无限长的),您将得到一个非常特定位长度的整数值。转换这些函数将给你类似C++的行为。

python整型的长度是无限的。我不完全确定我理解这个问题,但大概你只需要和你的值一起使用<代码> 0xFF,例如:GC:Cal= VALV[i] [j]和0xFF谢谢。艾伦,C++中的数组VALL填充了位字体值,即[0x00,0x3C,0x66,0x06,0x0C,0x30,0x60,0x7E],[0x00,0x3C,0x66,0x1C,0x06,0x66,0x3C],[0x00,0x0C,0x1C,0x2C,0x4C,0x7E,0x0C,0x0C],[0x00,0x7E,0x60,0x7C,0x06,0x66,0x3C],[0x00,0x3C,0x66,0x60,0x7C,0x66,0x3C],[0x00,0x7E,0x18,0x18],[0x00,0x3C,0x66,0x66,0x3C,0x66,0x66,0x66,0x3C],轮班更新了,请提取一个。所有用来挑出你误解的代码都没有用。这会使这成为一个糟糕的问题,甚至是离题。乌尔里奇,我更新了我的问题…我希望更容易理解。谢谢。我认为并希望它是最小的、完整的和可验证的。谢谢sophros,我将尝试一下。你好sophros!这看起来很有效,我相信numpy数组正在返回正确的值!现在我需要将所有这些都合并到我的Python中,我很乐观!感谢您的帮助和洞察力。
unsigned char   vals[8][8] = {0};
#include <stdio.h>
#define STRING               "12345678"
unsigned char *text = STRING;

const unsigned char TEST_FONT[128][8] = {
        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
        { 0x00, 0x3E, 0x41, 0x55, 0x41, 0x55, 0x49, 0x3E },
        { 0x00, 0x3E, 0x7F, 0x6B, 0x7F, 0x6B, 0x77, 0x3E },
        { 0x00, 0x22, 0x77, 0x7F, 0x7F, 0x3E, 0x1C, 0x08 },
        { 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x1C, 0x08 },
        { 0x00, 0x08, 0x1C, 0x2A, 0x7F, 0x2A, 0x08, 0x1C },
        { 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x3E, 0x08, 0x1C },
        { 0x00, 0x00, 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00 },
        { 0xFF, 0xFF, 0xE3, 0xC1, 0xC1, 0xC1, 0xE3, 0xFF },
        { 0x00, 0x00, 0x1C, 0x22, 0x22, 0x22, 0x1C, 0x00 },
        { 0xFF, 0xFF, 0xE3, 0xDD, 0xDD, 0xDD, 0xE3, 0xFF },
        { 0x00, 0x0F, 0x03, 0x05, 0x39, 0x48, 0x48, 0x30 },
        { 0x00, 0x08, 0x3E, 0x08, 0x1C, 0x22, 0x22, 0x1C },
        { 0x00, 0x18, 0x14, 0x10, 0x10, 0x30, 0x70, 0x60 },
        { 0x00, 0x0F, 0x19, 0x11, 0x13, 0x37, 0x76, 0x60 },
        { 0x00, 0x08, 0x2A, 0x1C, 0x77, 0x1C, 0x2A, 0x08 },
        { 0x00, 0x60, 0x78, 0x7E, 0x7F, 0x7E, 0x78, 0x60 },
        { 0x00, 0x03, 0x0F, 0x3F, 0x7F, 0x3F, 0x0F, 0x03 },
        { 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x2A, 0x1C, 0x08 },
        { 0x00, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x66 },
        { 0x00, 0x3F, 0x65, 0x65, 0x3D, 0x05, 0x05, 0x05 },
        { 0x00, 0x0C, 0x32, 0x48, 0x24, 0x12, 0x4C, 0x30 },
        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F },
        { 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x2A, 0x1C, 0x3E },
        { 0x00, 0x08, 0x1C, 0x3E, 0x7F, 0x1C, 0x1C, 0x1C },
        { 0x00, 0x1C, 0x1C, 0x1C, 0x7F, 0x3E, 0x1C, 0x08 },
        { 0x00, 0x08, 0x0C, 0x7E, 0x7F, 0x7E, 0x0C, 0x08 },
        { 0x00, 0x08, 0x18, 0x3F, 0x7F, 0x3F, 0x18, 0x08 },
        { 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x7F, 0x7F },
        { 0x00, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00 },
        { 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x3E, 0x7F, 0x7F },
        { 0x00, 0x7F, 0x7F, 0x3E, 0x3E, 0x1C, 0x1C, 0x08 },
        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },
        { 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18 },
        { 0x00, 0x36, 0x36, 0x14, 0x00, 0x00, 0x00, 0x00 },
        { 0x00, 0x36, 0x36, 0x7F, 0x36, 0x7F, 0x36, 0x36 },
        { 0x00, 0x08, 0x1E, 0x20, 0x1C, 0x02, 0x3C, 0x08 },
        { 0x00, 0x60, 0x66, 0x0C, 0x18, 0x30, 0x66, 0x06 },
        { 0x00, 0x3C, 0x66, 0x3C, 0x28, 0x65, 0x66, 0x3F },
        { 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00 },
        { 0x00, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x0C, 0x06 },
        { 0x00, 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60 },
        { 0x00, 0x00, 0x36, 0x1C, 0x7F, 0x1C, 0x36, 0x00 },
        { 0x00, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00 },
        { 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x60 },
        { 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00 },
        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60 },
        { 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x00 },
        { 0x00, 0x3C, 0x66, 0x6E, 0x76, 0x66, 0x66, 0x3C },
        { 0x00, 0x18, 0x18, 0x38, 0x18, 0x18, 0x18, 0x7E },
        { 0x00, 0x3C, 0x66, 0x06, 0x0C, 0x30, 0x60, 0x7E },
        { 0x00, 0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C },
        { 0x00, 0x0C, 0x1C, 0x2C, 0x4C, 0x7E, 0x0C, 0x0C },
        { 0x00, 0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C },
        { 0x00, 0x3C, 0x66, 0x60, 0x7C, 0x66, 0x66, 0x3C },
        { 0x00, 0x7E, 0x66, 0x0C, 0x0C, 0x18, 0x18, 0x18 },
        { 0x00, 0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C },
        { 0x00, 0x3C, 0x66, 0x66, 0x3E, 0x06, 0x66, 0x3C },
        { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x00 },
        { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30 },
        { 0x00, 0x06, 0x0C, 0x18, 0x30, 0x18, 0x0C, 0x06 },
        { 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x00 },
        { 0x00, 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60 },
        { 0x00, 0x3C, 0x66, 0x06, 0x1C, 0x18, 0x00, 0x18 },
        { 0x00, 0x38, 0x44, 0x5C, 0x58, 0x42, 0x3C, 0x00 },
        { 0x00, 0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66 },
        { 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C },
        { 0x00, 0x3C, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3C },
        { 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7C },
        { 0x00, 0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x7E },
        { 0x00, 0x7E, 0x60, 0x60, 0x7C, 0x60, 0x60, 0x60 },
        { 0x00, 0x3C, 0x66, 0x60, 0x60, 0x6E, 0x66, 0x3C },
        { 0x00, 0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66 },
        { 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C },
        { 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x6C, 0x6C, 0x38 },
        { 0x00, 0x66, 0x6C, 0x78, 0x70, 0x78, 0x6C, 0x66 },
        { 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E },
        { 0x00, 0x63, 0x77, 0x7F, 0x6B, 0x63, 0x63, 0x63 },
        { 0x00, 0x63, 0x73, 0x7B, 0x6F, 0x67, 0x63, 0x63 },
        { 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C },
        { 0x00, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60 },
        { 0x00, 0x3C, 0x66, 0x66, 0x66, 0x6E, 0x3C, 0x06 },
        { 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x78, 0x6C, 0x66 },
        { 0x00, 0x3C, 0x66, 0x60, 0x3C, 0x06, 0x66, 0x3C },
        { 0x00, 0x7E, 0x5A, 0x18, 0x18, 0x18, 0x18, 0x18 },
        { 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3E },
        { 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18 },
        { 0x00, 0x63, 0x63, 0x63, 0x6B, 0x7F, 0x77, 0x63 },
        { 0x00, 0x63, 0x63, 0x36, 0x1C, 0x36, 0x63, 0x63 },
        { 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x18, 0x18 },
        { 0x00, 0x7E, 0x06, 0x0C, 0x18, 0x30, 0x60, 0x7E },
        { 0x00, 0x1E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1E },
        { 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x00 },
        { 0x00, 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78 },
        { 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00, 0x00 },
        { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F },
        { 0x00, 0x0C, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00 },
        { 0x00, 0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E },
        { 0x00, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x7C },
        { 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x66, 0x3C },
        { 0x00, 0x06, 0x06, 0x06, 0x3E, 0x66, 0x66, 0x3E },
        { 0x00, 0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C },
        { 0x00, 0x1C, 0x36, 0x30, 0x30, 0x7C, 0x30, 0x30 },
        { 0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C },
        { 0x00, 0x60, 0x60, 0x60, 0x7C, 0x66, 0x66, 0x66 },
        { 0x00, 0x00, 0x18, 0x00, 0x18, 0x18, 0x18, 0x3C },
        { 0x00, 0x0C, 0x00, 0x0C, 0x0C, 0x6C, 0x6C, 0x38 },
        { 0x00, 0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66 },
        { 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 },
        { 0x00, 0x00, 0x00, 0x63, 0x77, 0x7F, 0x6B, 0x6B },
        { 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x66, 0x66, 0x66 },
        { 0x00, 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C },
        { 0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60 },
        { 0x00, 0x00, 0x3C, 0x6C, 0x6C, 0x3C, 0x0D, 0x0F },
        { 0x00, 0x00, 0x00, 0x7C, 0x66, 0x66, 0x60, 0x60 },
        { 0x00, 0x00, 0x00, 0x3E, 0x40, 0x3C, 0x02, 0x7C },
        { 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18 },
        { 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E },
        { 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18 },
        { 0x00, 0x00, 0x00, 0x63, 0x6B, 0x6B, 0x6B, 0x3E },
        { 0x00, 0x00, 0x00, 0x66, 0x3C, 0x18, 0x3C, 0x66 },
        { 0x00, 0x00, 0x00, 0x66, 0x66, 0x3E, 0x06, 0x3C },
        { 0x00, 0x00, 0x00, 0x3C, 0x0C, 0x18, 0x30, 0x3C },
        { 0x00, 0x0E, 0x18, 0x18, 0x30, 0x18, 0x18, 0x0E },
        { 0x00, 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18 },
        { 0x00, 0x70, 0x18, 0x18, 0x0C, 0x18, 0x18, 0x70 },
        { 0x00, 0x00, 0x00, 0x3A, 0x6C, 0x00, 0x00, 0x00 },
        { 0x00, 0x08, 0x1C, 0x36, 0x63, 0x41, 0x41, 0x7F }
};

#define FONT    TEST_FONT
int length = 8;
unsigned char   vals[8][8] = { 0 };

void font_update(unsigned char *loc)
{
    int     i, j, x = 0, pos = 0;
    while(*loc != 0x00) {
        for(i = 0; i < 8; i++)  {
            vals[pos][i] = FONT[*loc][i];
        }
        pos++; loc++;
    }
    while(x < 4) {
        for(j = 0; j < length; j++)   {
            for(i = 0; i < 8; i++)  {
                printf (" Shift Before Vals[%d][%d] = %d \n",j,i,vals[j][i]);
                vals[j][i] <<= 1;
                printf (" Shift After Vals[%d][%d] = %d \n",j,i,vals[j][i]);
                //an "if" block is not provided the curly braces then only 1 statement is considered inside it.
                if((j != length -1) && (vals[j + 1][i] & 0x80)) {
                    vals[j][i] |= 0x01;
                    printf (" Length Update Vals[%d][%d] = %d \n",j,i,vals[j][i]);
                }
            printf ("\n");
            }
        }
        x++;
    }
};

int main ()
{

int x;
    for(x=0; x < 5; x++) {
      font_update(text);
    }
}
import numpy as np

np.full(shape=8, fill_value=0, dtype=np.int8) # or np.zeros()